
やりたいこと
【不定期で送られてくる納期連絡のメールからファイルを取得してChatworkに転送したい】
1,Gmailに送られてくる、特定のタイトルのメールを1件だけ取得
2,1で取得したメールに添付されているExcelファイルを取得
3,2で取得したExcelファイルをChatworkに送信したい
出来たこと
1,特定のタイトルのメールを取得
困っていること
2,3が実装できない。
・添付されてくるExcelファイルが取得できない(?)
・取得出来ているがChatworkに送れていない(?)
使用ライブラリ:ChatWorkClient for Google Apps Script
function
1 //チャットワークトークン・ID 2 const CW_TOKEN = "トークンID"; 3 const CW_ROOM = ルームID; 4 const CW_TO = 00000; 5 6 //Gmailから特定条件のスレッドを検索しメールを取り出す 7 var strTerms = 'is:unread "納期の連絡"'; 8 var myThreads = GmailApp.search(strTerms, 0, 1); //条件にマッチしたスレッドを取得 9 var myMsgs = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得する→二次元配列で格納 10 11 //チャットワークAPI 12 var client = ChatWorkClient.factory({ 13 token: CW_TOKEN 14 }); 15 16 //各スレッド×メール 17 for (var i = myMsgs.length - 1; i >= 0; i--) { 18 var msgsInThread = myMsgs[i]; 19 for (var j = 0; j < msgsInThread.length; j++) { 20 var msg = msgsInThread[j]; 21 22 //未読のみ 23 if (msg.isUnread()) { 24 //メールを既読にする 25 msg.markRead(); 26 27 var date = new Date(); 28 Logger.log(msg); 29 var attachments = msg.getAttachments(); 30 Logger.log(attachments); 31 //メッセージ作成 32 var msgBody = Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd') 33 +"[hr]" +"納期連絡" + 34 attachments; 35 36 //チャットワークに送る 37 client.sendMessage({ 38 room_id: CW_ROOM, 39 body: msgBody 40 }); 41 } 42 } 43 } 44}
var attachments = msg.getAttachments();
この部分でExcelファイルの取得が出来ていると思っていたのですが、できておらず
Chatwork上では「GmailAttachment」という文字列のみが出力されてしまいます。
恐れ入りますが、ご教授いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー