在Gmail加载项中使用UrlFetchApp的权限错误

And*_*erg 10 google-apps-script gmail-contextual-gadgets gmail-api gmail-addons

我刚刚开始尝试构建新的Gmail加载项,并且遇到以下错误消息:

"你没有权限调用fetch"

在脚本编辑器中测试加载项时,以及在Gmail中部署时,会发生这种情况.以下是代码示例:

function getContextualAddOn(e) {
    var API_KEY = 'TESTKEY';
    var URL = 'https://[REDACTED]';
    var options = {
        'method' : 'post',
        'contentType': 'application/json',
        'headers': {
            'x-api-key': API_KEY
        },
        'payload' : JSON.stringify({ 'foo': 'bar' })
    };

    var response = UrlFetchApp.fetch(URL, options);

    [more code that builds a card] 
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,它是一个非常直接的用法UrlFetchApp.fetch.我是Apps Script的新手,所以也许我在清单中缺少一些权限声明或范围.我尝试了一个更简单的例子UrlFetchApp.getRequest,但是也失败了"你没有权限调用getRequest".

插件的清单与示例中的清单相同:

{
  "timeZone": "America/New_York",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",

  "oauthScopes": [
    "https://www.googleapis.com/auth/gmail.addons.execute",
    "https://www.googleapis.com/auth/gmail.addons.current.message.readonly",
    "https://www.googleapis.com/auth/userinfo.email"
  ],
  "urlFetchWhitelist": [
    "https://[REDACTED]"
  ],
  "gmail": {
    "name": "Test Add-On",
    "logoUrl": "some url",
    "primaryColor": "#4285F4",
    "secondaryColor": "#4285F4",
    "contextualTriggers": [{
      "unconditional": {},
      "onTriggerFunction": "getContextualAddOn"
    }],
    "version": "TRUSTED_TESTER_V2"
  }
}
Run Code Online (Sandbox Code Playgroud)

UrlFetchApp应该被允许里面的Gmail插件,或者这只是一个错误?我是否需要在清单中添加内容或在脚本编辑器中启用其他选项?

Eri*_*eda 23

UrlFetchApp服务需要额外的范围https://www.googleapis.com/auth/script.external_request.将其添加到您的范围列表中,代码应该可以工作.

每个Apps Script方法所需的范围列在参考文档(示例)中的"授权"部分下.或者,您可以通过临时删除oauthScopes清单部分并在" 文件">"项目属性">"范围"查看代码的自动确定范围来发现脚本所需的范围.(如果在清单中定义任何范围,则会禁用Apps脚本的"自动范围检测"行为.)

参考