Gmailの特定のラベルをDiscordに転送するbotを実装したいとおもい、検索するとこちらのページが見つかりました。このページにある通りにGASで入力後実行してみると、件名と内容は表示されますが添付ファイルは送信されませんでした。添付ファイルのPDFには大学のZoom講義のリンクが貼られており、本文よりもむしろ添付ファイルのほうが重要なのでどうにかして改善しようとしましたが、ネットで検索しても解決策がわかりませんでした。
Twitterで検索しましたが、こちらのツイートの画像のように添付ファイルが送信されることが理想です。
書き込んだコードは以下の通りです。(上のページの内容とほぼ同じです)
GoogleAppsScript
function hook() { const threads = GmailApp.search('label:Schedule'); if (threads.length == 0) { Logger.log('新規メッセージなし'); return } threads.forEach(function (thread) { const messages = thread.getMessages(); const payloads = messages.map(function (message) { message.markRead(); // メールを既読に設定する const from = message.getFrom(); const subject = message.getSubject(); const plainBody = message.getPlainBody(); const webhook = getWebhookUrl(); Logger.log(subject); const payload = { content: subject, embeds: [{ title: subject, author: { name: from, }, description: plainBody.substr(0, 2048), }], } return { url: webhook, contentType: 'application/json', payload: JSON.stringify(payload), } }) Logger.log(payloads); UrlFetchApp.fetchAll(payloads); }) } function getWebhookUrl() { const spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); const sheet = spreadsheet.getActiveSheet(); return sheet.getRange(1, 1).getValue(); // セルA1を取得 }
おそらくは
GoogleAppsScript
messages.getAttachments();
を上のコードのどこかに挿入するのではないかと思うのですが、どのようなコードを追記すればこちらのツイートの画像のようにできますでしょうか。ご教示くださりますと幸いです。
まだ回答がついていません
会員登録して回答してみよう