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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

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

Q&A

解決済

1回答

1444閲覧

LINENotifyで受信メールをLINEに通知したい

10-mo

総合スコア21

Google Apps Script

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

0グッド

1クリップ

投稿2021/09/27 11:26

受信メールをLINEに通知する仕組みをつくりたいです。いろいろと調べてベースとなるスクリプトは組めていると思うのですが、なぜかエラーが出てしまいます。ユーチューブ動画やネットを見るとスムーズにできているのに、なぜかつまづきます。お手上げ状態で、ご教示いただけると幸いです。よろしくお願いいたします。
LINEに通知する内容は、件名・本文です。

var lineToken = "8Thfxge7Tu0UThVA5EPfNRxyHnx1eDwA8GIO6kkX7G6"; //LINE notify token var get_interval = 5; //●分前~現在の新着メールを取得 #--トリガーの時間間隔をこれに合わせる 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) + 3); //秒にして+3秒しておく //検索条件指定 var strTerms = '(is:unread after:'+ time_term + ')'; //取得 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[subject]" + myMsgs[i].slice(-1)[0].getSubject() + "\n\n[Message]\n"+ myMsgs[i].slice(-1)[0].getPlainBody(); } 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]) } } }

エラーコード
Exception: Request failed for https://notify-api.line.me returned code 400. Truncated server response: {"status":400,"message":"message: must not be empty"} (use muteHttpExceptions option to examine full response)
send_line @ コード.gs:12

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

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

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

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

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

itagagaki

2021/09/27 12:45

messageが空 →たぶんsend_lineの引数Meが空 →たぶんmainでのnew_Me[i]が空 なので、まずはその値をconsole.logなどで確認してみてはどうですか?
10-mo

2021/09/28 05:41

ありがとうございます。ちょっとやってみます!!
guest

回答1

0

ベストアンサー

まずは、LINEにメッセージを送る、だけのコードを組んでみましょう。
これなら、サンプルコードやら解説記事やらたくさんあるので、組めると思います
それがきちんとできたなら、
受信メールを取得するコードを組んで、それがきちんと動くのを確認しましょう。
あとはそれを組み合わせるだけ、です

投稿2021/09/27 22:42

y_waiwai

総合スコア88042

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

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

10-mo

2021/09/28 05:40

そうですね、一気にやり過ぎかもしれません。1つずつやってみます!ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問