[英]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.