[英]OAuth 2.0 from Google Apps Script (GAS) to Sheets API
根據Google 的文檔,我實現了以下代碼以將一行附加到 Google 表格(並且我是此表格的所有者)。
function addSalaryLog(updateArray) {
const resource = {
"majorDimension": "ROWS",
"values": [updateArray]
};
const spreadsheetId = 'here_goes_the_spreadsheet_id';
const range = 'A:A';
const optionalArgs = {valueInputOption: "USER_ENTERED"};
Sheets.Spreadsheets.Values.append(resource, spreadsheetId, range, optionalArgs);
}
當我調用它時,作為回報,我收到以下錯誤:
GoogleJsonResponseException:對 sheet.spreadsheets.values.append 的 API 調用失敗並出現錯誤:請求缺少所需的身份驗證憑據。 預期的 OAuth 2 訪問令牌、登錄 cookie 或其他有效的身份驗證憑據。 請參閱https://developers.google.com/identity/sign-in/web/devconsole-project 。
不用問,我點擊了鏈接 :-) 它解釋了如何在開發者控制台中創建 OAuth 2.0。 創造了✅。 但后來它並沒有解釋如何實際授權腳本。 我希望在調用 Sheets API 之前,我應該能夠觸發啟動權限對話框。
我看到以下可能的選項:
Sheets....
使用URLFetch
。 更新我已經實現testAddSalaryLog()
,它與原始函數完全相同,但具有硬編碼值。 它有效! 這讓我認為解決方案是強制觸發權限屏幕。
我有 3 個問題/建議:
問題 1。
由於您使用的是 Sheets API。 您是否在腳本中啟用了Google Sheets API 高級服務? 從Editor
> Service
> Google Sheet API
?
問題2。
您是否通過查看項目Overview
來查看是否將“Sheets API 范圍”添加到腳本中? 如果它們不是自動添加的,您需要按照以下步驟手動添加它們:
添加范圍:
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/spreadsheets"
"https://www.googleapis.com/auth/drive.file",
問題 3。
你已經授權代碼了嗎?
在 Apps 腳本編輯器中,單擊Run
。 第一次運行示例時,它會提示您授權訪問:
選擇Review permissions
> Allow.
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.