我有一个小的Google Apps脚本,我已将其部署为API可执行文件。
虽然我使用(电子表格)的范围使用有效令牌进行了通话,但我无法通过此403 PERMISSION_DENIED
错误。
我现在正在API's Explorer上测试此错误,但错误相同。
有没有人对我可能遗失的内容有任何想法?
我的脚本很简单(但仍然不完整,但它运行 - 这对于这些初始测试应该足够了):
OAuth Scope required by script (copied from API's Explorer):
https://www.googleapis.com/auth/spreadsheets
function myFunction(get) {
var ss = SpreadsheetApp.openById("1axDlnPaoEwhlb_Vs5SLBvkGJrR-fSeOLuHEdSBXCTBg"); // I'm not getting anything from the sheet at this point, I included it just to make sure that the script requires the spreadsheets scope
get += " " + "success!";
return ContentService.createTextOutput(get);
}
请求(从API'资源管理器中复制):
POST https://script.googleapis.com/v1/scripts/1d1EKj7vi-gzC0gB02qjw_qBPE1zSrZtJp-YUWuKm3NL3-3t6Sixpm0TZ:run?key={YOUR_API_KEY}
{
"function": "myFunction",
"parameters": [
"Hello world!"
]
}
回复(从API'资源管理器中复制):
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
答案 0 :(得分:2)
您可能需要检查这三件事:
Method: scripts.run
在Apps脚本中运行某项功能,请设置devMode: true
,如果您是该脚本的所有者。否则,请使用默认值false
。此外,您应该符合Using the Execution API中列出的要求。
有关其他见解,请参阅此相关SO post。
答案 1 :(得分:1)
该脚本应与使用的OAuth 2.0客户端ID对应的开发人员控制台项目ID相关联(在当前脚本的脚本编辑器上:Select x.name
, count(*) total
from employee x
join employee y
on y.supervisor_id = x.employee_id
group
by x.employee_id;
,然后输入您的项目ID号)
这就是为什么我的脚本无法运行的原因(您的脚本可能有所不同,请参阅Teyam's回答我已标记为正确的脚本)。