Edited at

【GAS】GmailAppに対するマニフェスト設定

More than 1 year has passed since last update.


概要

2018/09/01以降、スプレッドシートのGASでGmailApp.sendEmailを使うと以下のエラーが出る。

スクリーンショット 2018-09-02 23.21.50.png

これの対応方法をメモ程度にまとめました。


マニフェストの確認


  1. [ファイル]から[プロジェクトのプロパティ]を選択

    スクリーンショット 2018-09-02 23.25.05.png


  2. [スコープ]を選択するとデフォルトで設定されているマニフェストが見える

    ※今回のエラーはここに必要なマニフェストが無いことで出ている

    スクリーンショット 2018-09-02 23.25.13.png



マニフェストの設定


  1. [表示]から[マニフェストファイルの表示]を選択

    スクリーンショット 2018-09-02 23.30.15.png


  2. マニフェストの追加

    マニフェストファイルのappsscript.jsonはデフォルトでは以下のようになっている



appsscript.json

{

"timeZone": "Asia/Tokyo",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER"
}

ここにoauthScopesを追記して、内容に既存のhttps://www.googleapis.com/auth/script.send_mailhttps://www.googleapis.com/auth/spreadsheetsを加えてhttps://www.googleapis.com/auth/gmail.modifyを記述する


appsscript.json

{

"timeZone": "Asia/Tokyo",
"oauthScopes": ["https://www.googleapis.com/auth/script.send_mail",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/gmail.modify"
],
"dependencies": {
},
"exceptionLogging": "STACKDRIVER"
}

以上の対応で、GmailApp.sendEmailが動くようになりました。

スクリプト起動時にGmailへのアクセス許可を求められるので、それはOKしておいてください。


まとめ


  • いきなりの仕様変更で動かなくなったことには焦ったけど、GmailAppからMailAppに変えて対応は出来た。

  • しかもメール配信速度はMailAppのが早い

  • ただ放置が気持ち悪かったので、一応解決した感じ。

  • また別のところで権限周りの問題が起きたときは、同対応で解決出来そう


参考記事

Google Apps Scriptに追加されたマニフェストについて