Я хочу получить формулу ячеек из электронной таблицы, используя 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 или предложите несколько полезных статей.