新しいGmailアドオンを作成しようとしていますが、次のエラーメッセージが表示されます。
「フェッチを呼び出す権限がありません」
これは、スクリプトエディターでアドオンをテストするとき、および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]
}
ご覧のとおり、これはUrlFetchApp.fetch
の非常に簡単な使用法です。私はAppsScriptを初めて使用するため、マニフェストにいくつかのアクセス許可宣言またはスコープがない可能性があります。 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"
}
}
UrlFetchApp
はGmailアドオン内で許可されることになっていますか、それともこれは単なるバグですか?マニフェストに何かを追加したり、スクリプトエディタで他のオプションを有効にしたりする必要がありますか?
UrlFetchApp
サービスには、追加のスコープhttps://www.googleapis.com/auth/script.external_request
が必要です。スコープのリストに追加すると、コードが機能するはずです。
各AppsScriptメソッドに必要なスコープは、リファレンスドキュメントの「承認」セクションに記載されています( 例 )。または、マニフェストのoauthScopes
セクションを一時的に削除し、ファイル>プロジェクトプロパティ>でコードの自動決定されたスコープを表示することで、スクリプトに必要なスコープを見つけることができます。スコープ。 (マニフェストでスコープを定義すると、Apps Scriptの「スコープの自動検出」動作が無効になります。)
参考文献