我在我的Aurelia應用程序(我正在使用TypeScript)中玩弄Google Sheets API的新版本。我已經成功地登錄用戶,並要求所要求的範圍,但是當我試圖得到一個電子表格中的API引發以下錯誤的值:表JavaScript API未捕獲錯誤
cb=gapi.loaded_0:269 Uncaught Error: arrayForEach was called with a non array value(…)
這是我的初始化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"]
在用戶登錄成功,我甚至可以得到他們的名字和電子郵件。加載Sheets API後,我已經檢查過`gapi.client'和'sheets'對象,但是當我嘗試從電子表格中獲取數據時,它會失敗,並顯示上述錯誤。我正在運行的示例違反了Google公開的電子表格,該示例在this示例中使用。另外請注意,我的客戶端ID沒有任何問題,因爲我已經運行Google的示例代碼,並且工作正常。
試過了..它沒有工作。我直接從谷歌的例子中複製了'range'的值,但它似乎仍然沒有工作... – dimlucas
是的,我現在已經嘗試過這個示例,並且示例確實可以正常工作,所以這不是問題...關於你的範圍的兩個問題:你要求驅動器和表單的只讀和完全訪問,你只需要請求一個或其他(只讀或不是),這取決於你是否想授予寫訪問權限?其次,是否啓用了Drive API? – Bardy
Drive API未啓用,只有Sheets API。我現在啓用它,但錯誤仍然存在。我試着用readonly scope來運行代碼。我包含了所有可用的範圍,以確保錯誤與他們無關 – dimlucas