javascript 使用Google API集成反应组件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 使用Google API集成反应组件相关的知识,希望对你有一定的参考价值。

/* global document, gapi, Promise */

import React, { PureComponent } from 'react';

class App extends PureComponent {
  constructor(props) {
    super(props);
    this.state = { gapiReady: false, values: {} };
  }
  initGoogleAPI = () => {
    const script = document.createElement('script');
    script.src = 'https://apis.google.com/js/api.js';

    script.onload = () => {
      gapi.load('client:auth2', () => {
        gapi.client
          .init({
            apiKey: '<api-key>',
            clientId: '<cilent-id>',
            discoveryDocs: [
              'https://sheets.googleapis.com/$discovery/rest?version=v4',
            ],
            scope: 'https://www.googleapis.com/auth/spreadsheets',
          })
          .then(() => {
            Promise.resolve(gapi.auth2.getAuthInstance().signIn()).then(() => {
              if (gapi.auth2.getAuthInstance().isSignedIn.get()) {
                this.setState({ gapiReady: true });
              }
            });
          });
      });
    };
    document.body.appendChild(script);
  };
  componentDidMount() {
    this.initGoogleAPI();
  }
  componentDidUpdate() {
    if (this.state.gapiReady) {
      gapi.client.sheets.spreadsheets.values
        .get({
          spreadsheetId: '<spreadsheet-id>',
          range: 'A1:B1',
        })
        .then((response) => {
          this.setState(({ values }) => ({
            ...values,
            values: response.result,
          }));
        });
    }
  }
  render() {
    if (this.state.gapiReady) {
      return (
        <div>
          <h1>GAPI is loaded and ready to use.</h1>
          <pre>{this.state.values}</pre>
        </div>
      );
    }
    return <div>Loading GAPI...</div>;
  }
}

export default App;

以上是关于javascript 使用Google API集成反应组件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google IAP 启用 CORS

Google Maps API当前位置不断更新

Google Talk API 与 Android 应用程序的集成

Android 中的 Google Pay API 集成

从 javascript 调用 Google 云打印/搜索 API

使用Javascript从Google Places搜索api获取纬度和经度