Я играю с новой версией API Google Sheets в своем приложении Aurelia (я использую TypeScript). Мне удалось войти в систему пользователя и запросить необходимые области, но когда я пытаюсь получить значения электронной таблицы, API выдает следующую ошибку:
cb=gapi.loaded_0:269 Uncaught Error: arrayForEach был вызван со значением, отличным от массива(…)
Вот как я инициализирую API и вхожу в систему:
gapi.load("auth2", () => {
gapi.auth2.init({
'client_id': this.clientId,
'scope': this.scopes.join(' ')
}).then(() => {
this.auth = gapi.auth2.getAuthInstance();
this.auth.signIn().then(response => {
gapi.load("client", () => {
gapi.client.load("sheets", "v4", () => {
gapi.client.sheets.spreadsheets.values.get({
spreadsheetId: this.testSheet,
range: 'Class Data!A2:E'
}).then((response) => {console.log(response);});
});
});
})
});
});
Переменная scopes
представляет собой массив областей видимости:
scopes: string[] = ["https://www.googleapis.com/auth/spreadsheets.readonly", "https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/drive.readonly", "https://www.googleapis.com/auth/drive"]
Пользователь успешно входит в систему, я даже могу получить его имя и адрес электронной почты. После загрузки API листов я проверил `gapi.client', и объект 'листы' там есть, но когда я пытаюсь получить данные из электронной таблицы, происходит сбой с указанной выше ошибкой. Пример, который я запускаю, относится к общедоступной электронной таблице Google, которая используется в этом примере. Также обратите внимание, что с моим идентификатором клиента все в порядке, поскольку я запускал с ним пример кода Google, и он работает нормально.