解決したい課題
Gmailが届いたらchatworkへ自動転送させたいです。
現状
Gmailは指定の「テスト」ラベルに振り分けられて届いています。
未読の状態でGASを実行してもchatworkの「テスト」スレッドに転送されません。
コード
var apiToken = "{API_TOKEN}"; var postUrl = "https://api.chatwork.com/v2/rooms/{roomID}/messages"; // 通知したいchatworkのチャネル(部屋) var postChannel = "テスト"; // 抽出元のGmailのラベル var checkLabel = "テスト "; function myFunction() { // 未読の指定ラベル を検索 var threads = GmailApp.search('is:unread label:' + checkLabel); var count = threads.length; Logger.log("対象件数:" + threads.length); for(var i = 0; i < count; i++) { var lastDate = threads[i].getLastMessageDate(); var datetime = lastDate.getFullYear() + "/" + (lastDate.getMonth() + 1) + "/" + lastDate.getDate() + " " + lastDate.getHours() + ":" + lastDate.getMinutes() + ":" + lastDate.getSeconds(); var messages = threads[i].getMessages(); //同じ件名で、ネストされたメッセージを個別に if(messages.length > 0){ for(var j = 0; j < messages.length ; j++){ // 簡易的に、brタグを改行に var brTagStripped = messages[j].getBody().replace(/(<br>|<br />)/gi, '\n'); // 簡易的に、HTMLメールのタグを解除 var stripped = brTagStripped.replace(/(<([^>]+)>)/ig,""); var postMessage = " 件名:[" + threads[i].getFirstMessageSubject() + "]" + "本文```" + stripped + "```"; Logger.log(datetime + postMessage); // 対象のメールを1通を既読に。 messages[j].markRead(); //chatworkに通知 sendHttpPost(postMessage); } } // 対象のメールを既読にする // NOTE: 同じ件名でネストされているものはすべて既読になります。 // threads[i].markRead(); } } function sendHttpPost(message, username) { var jsonData = { "channel" : postChannel, "username" : username, "text" : message }; var payload = JSON.stringify(jsonData); var options = { "method" : "post", "contentType" : "application/json", "payload" : payload }; UrlFetchApp.fetch(apiToken, postUrl, options); }
参考URL
↓GASのコード
https://qiita.com/matsuyoro/items/187214f664148282a7af
↓chatworkのAPIトークンとルームIDの取得
https://al-batross.net/2020/09/30/chatworkapi/
参考にしたコードはGmail→slackの自動転送コードなので、chatworkに置き換えて試しています。
slackではwebhookの設定が必要になるようですが、chatworkではAPIトークンとルームIDの設定が必要になるため、そこに差分が生じています。
恐らく、この箇所に問題があるかと推測していますが、現時点では具体的な対応策が浮かんでおりません。
どなたかアドバイスいただけますと助かります。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/15 06:12
2021/09/15 06:31
2021/09/16 02:36
2022/05/16 02:50
2022/05/16 11:55