Google Apps ScriptでGmailの下書きを作成する
きっかけ
をみて。
今までは
にあるようにChrome Extension + AlfredのSnippet機能でやってたけど、
自動化できそうと思い、ちょっと試してみた。
コード
のStack Overflowのサイトほぼそのまま。
ScriptApp.getOAuthToken()
でOAuthトークンがとれるから、Gmailの下書きを作るAPIを生で叩くというなかなかの力技。
function createDraft() { try { var forScope = GmailApp.getInboxUnreadCount(); // needed for auth scope var raw = 'Subject: test\n' + 'To: hoge@example.com\n' + 'Content-Type: multipart/alternative; boundary=1234567890123456789012345678\n' + 'testing Draft msg\n' + '--1234567890123456789012345678--\n'; var draftBody = Utilities.base64Encode(raw); var params = { method: 'post', contentType: 'application/json', headers: { Authorization: 'Bearer ' + ScriptApp.getOAuthToken() }, muteHttpExceptions: true, payload:JSON.stringify({ message: { raw: draftBody } }) }; var res = UrlFetchApp.fetch('https://www.googleapis.com/gmail/v1/users/me/drafts', params); Logger.log(res.getContentText()); } catch(err) { Logger.log(err.lineNumber + ' - ' + err); } }
上記のスクリプトをScript Editor上で実行すれば下書きは作成できました。
注意点
- Script Editorはコレ → https://script.google.com
- メニューのリソースより、下記項目を有効化しないといけない
疑問
が、Gmailだとメニューを増やしたりもできないし、何をトリガーにすればよいのだろう?
1日1回実行とかは、なしではないけど、ここまで力技なら今までのやり方でよいかな・・・