質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

1218閲覧

GmailをLINEに転送するスクリプトで、Gmailの本文だけが取得できない事象について原因を教えていただける方!

syo-go

総合スコア20

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2020/07/24 16:29

GoogleAppsScriptについての質問です。
Gmailに届いたメールを取得してLINEに通知する機構を作っているのですが、下記コードで本文だけが()が取得されません。(正確にはLINEに表示されません。)
それ以外はうまく挙動するのですが、エラー原因がわかりません。

+ "\n\n[Message]\n"+ myMsgs[i].slice(-1)[0].getPlainBody();

あたりに問題があると思うのですが。。。
どなたかエラー原因と思しき箇所を教えていただけますと幸いです!

var lineToken = "XXXXXXXXXX"; //LINE notify token var get_interval = 1; //1分前からの新着メールを取得 function send_line(Me){ var payload = {'message' : Me}; var options ={ "method" : "post", "payload" : payload, "headers" : {"Authorization" : "Bearer "+ lineToken} }; UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options); } function fetchContactMail() { //取得間隔 var now_time= Math.floor(new Date().getTime() / 1000) ;//現在時刻を変換 var time_term = now_time - (60 * get_interval); //秒 //検索条件指定(未読でラベル”BASE購入通知”を持つもの) var strTerms = ('is:unread label:"XXXXXXXX"'); //取得 var myThreads = GmailApp.search(strTerms); var myMsgs = GmailApp.getMessagesForThreads(myThreads); var valMsgs = []; for(var i = 0; i < myMsgs.length;i++){ valMsgs[i] = " " + myMsgs[i].slice(-1)[0].getDate().getMonth() + "/"+ myMsgs[i].slice(-1)[0].getDate().getDate() + " " + myMsgs[i].slice(-1)[0].getDate().getHours() + ":" + myMsgs[i].slice(-1)[0].getDate().getMinutes() + "\n[from]" + myMsgs[i].slice(-1)[0].getFrom() + "\n\n[sbject]" + myMsgs[i].slice(-1)[0].getSubject(); + "\n\n[Message]\n"+ myMsgs[i].slice(-1)[0].getPlainBody(); myMsgs[i][0].markRead(); //メッセージを既読にする } return valMsgs; } function main() { new_Me = fetchContactMail() if(new_Me.length > 0){ for(var i = new_Me.length-1; i >= 0; i--){ send_line(new_Me[i]) } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

+ "\n\n[sbject]" + myMsgs[i].slice(-1)[0].getSubject(); + "\n\n[Message]\n"+ myMsgs[i].slice(-1)[0].getPlainBody();

getSubject(); のセミコロンで処理が分割されてしまっているような気がしました

投稿2020/07/24 18:28

編集2020/07/24 18:29
unhappychoice

総合スコア1531

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syo-go

2020/07/25 10:04

本当だ! 気づきませんでした。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問