API Google Sheets с Ionic - PullRequest
       15

API Google Sheets с Ionic

0 голосов
/ 28 июня 2018

Я хочу получить формулу ячеек из электронной таблицы, используя google sheet api . Я выполнил настройку ключей учетных данных и т. Д. Затем я приступил к настройке javascript, как указано google . Но получил ошибку cannot find gapi, поэтому я сделал это решение , и оно заработало. Но теперь я получаю ошибку

Свойство «листы» не существует для типа «тип клиента».

Также прошел через эту статью , но не очень помог. Следующее - моя реализация.

Home.ts

readFromSpreadSheet() {
    gapi.client.sheets.spreadsheets.values.get({
      spreadsheetId: 'XXXIDXXX',
      range: 'Sheet1!A1:D7'
    }).then((response) => {
      var result = response.result;
      var numRows = result.values ? result.values.length : 0;
      console.log('${numRows} rows retrieved.');
    });
  }

client_secret.json

{"web":{"client_id":"XXX","project_id":"XXX","auth_uri":"XXX","token_uri":"https://accounts.google.com/o/oauth2/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"XXXXX"}}

quickstart.html

<code><!DOCTYPE html>
<html>
  <head>
    <title>Google Sheets API Quickstart</title>
    <meta charset='utf-8' />
  </head>
  <body>
    <p>Google Sheets API Quickstart</p>

    <!--Add buttons to initiate auth sequence and sign out-->
    <button id="authorize-button" style="display: none;">Authorize</button>
    <button id="signout-button" style="display: none;">Sign Out</button>

    <pre id="content">
// Идентификатор клиента и ключ API из консоли разработчика var CLIENT_ID = 'XXXX'; var API_KEY = 'XXX'; // Массив URL-адресов документов для обнаружения API для API, используемых при быстром запуске var DISCOVERY_DOCS = ["https://sheets.googleapis.com/$discovery/rest?version=v4"]; // Области авторизации, требуемые API; несколько областей могут быть // включено, разделено пробелами. var SCOPES = "https://www.googleapis.com/auth/spreadsheets.readonly"; var authorizeButton = document.getElementById ('кнопка авторизации'); var signoutButton = document.getElementById ('кнопка для выхода'); / ** * При загрузке вызывается для загрузки библиотеки auth2 и клиентской библиотеки API. * / function handleClientLoad () { gapi.load ('client: auth2', initClient); } / ** * Инициализирует клиентскую библиотеку API и устанавливает состояние входа * слушатели. * / function initClient () { gapi.client.init ({ apiKey: API_KEY, clientId: CLIENT_ID, discoveryDocs: DISCOVERY_DOCS, область применения: ОБЛАСТИ ПРИМЕНЕНИЯ }). then (function () { // Прослушивание изменений состояния входа. . Gapi.auth2.getAuthInstance () isSignedIn.listen (updateSigninStatus); // Обработка начального состояния входа. updateSigninStatus (gapi.auth2.getAuthInstance () isSignedIn.get ().); authorizeButton.onclick = handleAuthClick; signoutButton.onclick = handleSignoutClick; }); } / ** * Вызывается при изменении статуса входа в систему для обновления пользовательского интерфейса. * соответственно. После входа вызывается API. * / function updateSigninStatus (isSignedIn) { if (isSignedIn) { authorizeButton.style.display = 'none'; signoutButton.style.display = 'block'; listMajors (); } еще { authorizeButton.style.display = 'block'; signoutButton.style.display = 'none'; } } / ** * Войдите в систему после нажатия кнопки. * / function handleAuthClick (event) { . Gapi.auth2.getAuthInstance () зарегистрировались (); } / ** * Выход пользователя после нажатия кнопки. * / function handleSignoutClick (event) { . Gapi.auth2.getAuthInstance () SignOut (); } / ** * Добавить элемент pre к телу, содержащему данное сообщение * как его текстовый узел. Используется для отображения результатов вызова API. * * @param {string} message Текст для размещения в предварительном элементе. * / function appendPre (message) { var pre = document.getElementById ('content'); var textContent = document.createTextNode (message + '\ n'); pre.appendChild (TextContent); } / ** * Напечатайте имена и специализацию студентов в электронной таблице: * https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit * / function listMajors () { gapi.client.sheets.spreadsheets.values.get ({ идентификатор таблицы: «XXXIDXXX», диапазон: «Данные класса! A2: E», }). then (function (response) { var range = response.result; if (range.values.length> 0) { appendPre («Имя, майор:»); для (i = 0; i

Не знаю, что делать с quickstart.html. Я только изменил CLIENT_ID & API_KEY

$ ионная информация

cli пакеты: (/ usr / local / lib / node_modules)

@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0

глобальные пакеты:

cordova (Cordova CLI) : 8.0.0

местные пакеты:

@ionic/app-scripts : 3.1.10
Cordova Platforms  : none
Ionic Framework    : ionic-angular 3.9.2

Система:

ios-deploy : 1.9.2
Node       : v8.11.1
npm        : 6.0.0
OS         : macOS High Sierra
Xcode      : Xcode 9.1 Build version 9B55

Переменные среды:

ANDROID_HOME : not set

Разное:

backend : pro

Пожалуйста, предложите шаги по интеграции API электронных таблиц Google с ionic или предложите несколько полезных статей.

1 Ответ

0 голосов
/ 29 июня 2018

После попытки ВСЕ. Я получил ответ!

И это:

Приложения Cordova не поддерживаются gapi.client

https://github.com/google/google-api-javascript-client/issues/334

Поддерживаемые среды:

https://developers.google.com/api-client-library/javascript/start/start-js#supported-environments

<</p>

...