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

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

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

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

Q&A

解決済

2回答

2428閲覧

GASで特定のメールをLINEにnotifyを経由で送信したいがURLが途中で途切れてしまう。

yurusukanna

総合スコア5

Google Apps Script

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

0グッド

0クリップ

投稿2020/04/15 07:08

前提・実現したいこと

Googleメールにて検知した特定の件名を含むメールを
LINE notifyにてLINEに投稿させるところまではうまくいったのですが
メール本文内のURLが半角&以降途切れてしまい上手くいきません。

発生している問題・エラーメッセージ

送りたいメール本文

○○○、 ▼▼▼ 発生しました。地点は下記URLをクリックしてくださいhttp://sasp.mapion.co.jp/hogehoge&nl=hogehogeho&el=hogehoge

LINEに投稿された本文

○○○、 ▼▼▼ 発生しました。地点は下記URLをクリックしてくださいhttp://sasp.mapion.co.jp/hogehoge

該当のソースコード

こちらを参考にしました。
https://asatte.biz/gmail-line/

GAS

1var FindSubject = 'subject:(ほげ) '; 2 3function getMail(){ 4 5 var myThreads = GmailApp.search(FindSubject, 0, 5); 6 var myMessages = GmailApp.getMessagesForThreads(myThreads); 7 8 for(var i in myMessages){ 9 for(var j in myMessages[i]){ 10 11 if(!myMessages[i][j].isStarred()){ 12 13 var strSubject = myMessages[i][j].getSubject(); 14 var strMessage = myMessages[i][j].getPlainBody(); 15 sendLine(strDate,strSubject,strMessage); 16 17 myMessages[i][j].star(); 18 } 19 } 20 } 21} 22 23function sendLine(strSubject,strMessage){ 24 25 var strToken = "TokenID"; 26 var options = 27 { 28 "method" : "post", 29 "payload" : "message=" + '\n【ほげ】\n' + '\n----------\n' + strSubject + strMessage + '\n----------\n', 30 "headers" : {"Authorization" : "Bearer "+ strToken} 31 32 }; 33 34 UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options); 35}

試したこと

https://teratail.com/questions/122400
この辺りの短縮URLサービスを介すことで上手くいく気がするのですが、よくわからず。。。

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

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

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

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

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

guest

回答2

0

https://teratail.com/questions/103745
この質問で同じ事象が発生しているので半角&じゃなく、url 中のパラメータが消されているのではないかと。

問い合わせても回答してくれないらしいですし、他のツールで代用できないんですかね。

投稿2020/04/15 13:36

papinianus

総合スコア12705

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

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

yurusukanna

2020/04/15 13:57

papinianusさん 回答ありがとうございます。 お示しいただいたそちらも見ていたところでした。 他ツールでの代用についてもう少し頭を捻ってみます。
guest

0

ベストアンサー

strDateの変数宣言をしていないで使っているので,エラーが出るのでは?

function sendLineでは,strDateを使っていない,引数が2つなので

sendLine(strSubject,strMessage)

にしてみてはいかがでしょうか

投稿2020/04/15 07:33

編集2020/04/15 08:44
mote

総合スコア128

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

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

yurusukanna

2020/04/15 08:28

moteさん 回答ありがとうございます。 実施してみましたがやはり同じ&以降が途切れた投稿となりました。
mote

2020/04/15 08:38

お力になれず申し訳ございません... 気になる点としては, strDate を変数宣言していないのですが,エラーは出ていないでしょうか?
mote

2020/04/15 08:41

function sendLineでは,引数が2つなので sendLine(strSubject,strMessage)にしてみてはいかがでしょうか
yurusukanna

2020/04/15 09:10

いえ、とんでもありません! strDateについては修正したはずが残っていたものとなり、そちらについては修正済となります。 ありがとうございます。
mote

2020/04/15 09:30

なら良かったです笑 でしたらやはり&が意図しない働きをしているということですね encodeURIComponentは試しましたでしょうか? &も変換して通信してくれます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問