首页 文章

正确的Google App Script Execution API范围?

提问于
浏览
2

我希望通过Execution API运行Google App脚本来自动化一些人力资源工作 . 在不了解细节的情况下,我想将员工评估数据作为参数传递到App脚本中 . 然后,该脚本将使用此数据编译"Employee Review" GDoc .

到目前为止,我已经使用Execution API运行了一个简单的测试App脚本 . 例如,我可以成功运行一个记录字符串或与电子表格交互的简单函数 . 到现在为止还挺好 .

但是在尝试写入GDoc时遇到了问题(不幸的是,这对我的任务不可或缺) . 这是我配对的脚本:

// TODO: Eventually, we'll pass these variables as arguments
var docId = "MY-DOC-ID";

// Find the team member review doc
var doc = DocumentApp.openById(docId);

// Replace placeholder text
var docBody = doc.getActiveSection();
docBody.replaceText('{{DATE}}', "Date set by App Script!!!");
doc.saveAndClose();

当我在App Scripts Web UI中按"Run"按钮时,此脚本有效 . 但是当我尝试通过Execution API运行时,我得到:

{
  "error": "unauthorized_client",
  "error_description": "Unauthorized client or scope in request."
}

显然我没有提供正确的范围?按照文档,我可以在项目属性>范围中找到必要的范围,其中说:

enter image description here

但是当我尝试添加该范围时,它无法工作 . 正如我所说的其他范围(例如https://www.googleapis.com/auth/spreadsheets)工作正常 . 也许不再支持 auth/documents 范围,或者API中存在错误?

问题

1 回答

  • 0

    卫生署 . 我找到了解决问题的方法 . 虽然这是一个愚蠢的错误,但它仍然值得发布,因为它可能会在未来挽救其他人的混乱 .

    首先,关于我的设置的一些背景 . 我正在使用Service Account对Google Client API进行身份验证 . 此外,正如使用服务帐户设置时常见的那样,我冒充我们组织内的用户(特别是我自己的帐户) .

    我失踪的一步(后见之明)......

    • 以您模拟的人身份登录App Script Web UI .

    • 按播放按钮手动运行脚本

    • 如果模拟用户尚未授予访问所需范围的权限,系统将提示您执行此操作 .

    • 授予访问权限后(特别是对于https://www.googleapis.com/auth/documents范围),我的授权错误消失了 .

    所以上课:确保您模拟的帐户已授予您脚本所需的所有范围的访问权限 .

相关问题