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

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

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

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

Q&A

1回答

2010閲覧

GASによるLINEへの文と画像の同時送信

usami

総合スコア13

Google Apps Script

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

0グッド

0クリップ

投稿2019/06/20 11:53

GASでLINEにスプレッドシートの内容を送信させています。
テキストのみの送信方法はわかったのですが、

画像の場合はURLしか表示できません。
通常のメッセージのようにサムネイル表示にする方法はありますか?

セルのFの列に画像URLは格納してあります。

GAS

1 //LINEへの投稿文章 2 return '売上報告〜\n' + 3 'スタッフ名:' + notifySheet.getRange('B' + rowNum).getValue() + '\n' + 45     … 6 'スクショ:' + notifySheet.getRange('F' + rowNum).getValue() + '\n' 7 } 8 return; 9} 10 11//GoogleSpreadSheetの変更をSlackに通知する関数 12function postSheetChange(){ 13 14 //自作の関数:LINEに通知する文字列を作成 15 const postText = createSendMessage(); 16 if(postText === "") return; 17 // //LINEに通知する文字列を設定 18 // var postText = this.postText; 19 //自作の関数: textをslackに通知する関数を呼び出す 20 sendLINE(postText) 21} 22 23function sendLINE(text){ 24 var LINE_CHANNEL_ACCESS_TOKEN = ほにゃ';//LINE Botのアクセストークン 25 var url = 'https://api.line.me/v2/bot/message/push'; 26 var toID = 'ほにゃ';//取得したグループID 27 28 UrlFetchApp.fetch(url, { 29 'headers': { 30 'Content-Type': 'application/json; charset=UTF-8', 31 'Authorization': 'Bearer ' + LINE_CHANNEL_ACCESS_TOKEN, 32 }, 33 'method': 'POST', 34 'payload': JSON.stringify({ 35 'to': toID, 36 'messages':[{ 37 'type': 'text', 38 'text': text , 39 }] 40 }) 41 }) 42}

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

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

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

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

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

guest

回答1

0

質問者様のラインでは画像のメッセージに「スクショ」とかメッセージつけられるのですか?私のラインでは別メッセージ扱いなんで、そういう回答するね

javascript

1function buildTextMessage(text) { 2 return { 3 'type': 'text', 4 'text': text 5 } 6} 7function buildImageMessage(imageUrl, thumbUrl) { 8 return { 9 "type": "image", 10 "originalContentUrl": imageUrl, 11 "previewImageUrl": thumbUrl || imageUrl 12 } 13} 14 15function createSendMessage() { 16 const notifySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(); 17 const rowNum = notifySheet.getLastRow(); 18 if(true) { 19 return [buildTextMessage('売上報告〜\nスタッフ名:' + notifySheet.getRange('B' + rowNum).getValue()), buildImageMessage(notifySheet.getRange('F' + rowNum).getValue())]; 20 } 21 return []; 22} 23 24//GoogleSpreadSheetの変更をSlackに通知する関数 25function postSheetChange(){ 26 27 //自作の関数:LINEに通知する...を作成 28 const postMsg = createSendMessage(); 29 if(postMsg.length === 0) return; 30 // //LINEに通知する...を設定 31 //自作の関数: textをslackに通知する関数を呼び出す 32 sendLINE(postMsg); 33} 34 35function sendLINE(messages){ 36 const LINE_CHANNEL_ACCESS_TOKEN = 'ほにゃ;'; //LINE Botのアクセストークン 37 const url = 'https://api.line.me/v2/bot/message/push'; 38 const toID = 'ほにゃ';//取得したグループID 39 40 UrlFetchApp.fetch(url, { 41 'headers': { 42 'Content-Type': 'application/json; charset=UTF-8', 43 'Authorization': 'Bearer ' + LINE_CHANNEL_ACCESS_TOKEN, 44 }, 45 'method': 'POST', 46 'payload': JSON.stringify({ 47 'to': toID, 48 'messages':messages 49 }) 50 }) 51}

投稿2019/06/20 12:42

編集2019/06/20 22:04
papinianus

総合スコア12705

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問