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

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

新規登録して質問してみよう
ただいま回答率
85.38%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

Q&A

解決済

1回答

172閲覧

Googleスプレッドシートの特定の名前のLINEアカウントユーザーへflexMessageを送る

Tsubanishi

総合スコア43

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

0グッド

0クリップ

投稿2023/09/19 06:28

実現したいこと

  • スプレッドシートにあるLINEユーザーIDの特定の文字列の人にLINEflexMessageを送りたい。通常のメッセージが送れるところまでは確認済み

前提

スプレッドシートのGoogle APP scriptを使用しています
スプレッドシートの特定の人(今回はテストと記入があるユーザー)のLINEユーザーIDにLINEを送ろうと思っています

メッセージ内容
通常のメッセージ→送れる
flexMessage→送れない状況

現在のコード

Google

1function targetingMessage() { 2 const cells = sheet.createTextFinder('テスト').findAll(); 3 let userIds = []; 4 for (const cell of cells) { 5 userIds.push(cell.offset(0, -1).getValue()); 6 } 7 8 bot.multicastMessage(userIds, [bot.textMessage(`テストだよ`)]); 9//上記までのコードでは`テスト`のユーザーIDの人にLINEできます// 10//それプラスで下記のコードを追記したらエラーになりました// 11 12 const flex_message = { 13 "type": "bubble", 14 "hero": { 15 "type": "image", 16 "url": "https://linecorp.com", 17 "size": "full", 18 "aspectRatio": "20:13", 19 "aspectMode": "cover", 20 "action": { 21 "type": "uri", 22 "uri": "https://linecorp.com" 23 } 24 }, 25 "body": { 26 "type": "box", 27 "layout": "vertical", 28 "spacing": "md", 29 "action": { 30 "type": "uri", 31 "uri": "https://linecorp.com" 32 }, 33 "contents": [ 34 { 35 "type": "text", 36 "text": "空き情報", 37 "size": "xl", 38 "weight": "bold" 39 }, 40 { 41 "type": "box", 42 "layout": "vertical", 43 "spacing": "sm", 44 "contents": [ 45 { 46 "type": "box", 47 "layout": "baseline", 48 "contents": [ 49 { 50 "type": "icon", 51 "url": "*************************" 52 }, 53 { 54 "type": "text", 55 "text": "テストだよ", 56 "weight": "bold", 57 "margin": "xs", 58 "flex": 0, 59 "size": "xxs" 60 } 61 ] 62 } 63 ] 64 }, 65 { 66 "type": "text", 67 "text": "テストだよ:", 68 "wrap": true, 69 "color": "#aaaaaa", 70 "size": "xxs" 71 } 72 ] 73 }, 74 "footer": { 75 "type": "box", 76 "layout": "vertical", 77 "contents": [ 78 { 79 "type": "button", 80 "style": "primary", 81 "margin": "xxl", 82 "action": { 83 "type": "uri", 84 "label": "詳しくはこちら", 85 "uri": "*************" 86 }, 87 "color": "#00008b" 88 } 89 ] 90 } 91} 92bot.replyMessage(e, [bot.flexMessage(flex_message, "テキスト")]); 93}

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

bot.replyMessage(e, [bot.flexMessage(flex_message, "テキスト")]); //上記コードにReferenceError: e is not definedと出ます//

試したこと

.flexMessageを外すし、multicastMessageのみだとLINE配信ができます
.flexMessageも一緒に追加したいです。

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

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

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

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

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

YAmaGNZ

2023/09/19 08:19

replyMessageの引数のeが定義されていないというエラーです。 bot.multicastMessage(userIds, [bot.flexMessage(flex_message, "テキスト")]); としたらどうなりますか?
Tsubanishi

2023/09/19 11:00

プログラム実行完了しました。エラーが出ませんでした。 ありがとうございます
guest

回答1

0

自己解決

92行目のコードを

bot.replyMessage(e, [bot.flexMessage(flex_message, "テキスト")]); //上記コードを下記の内容に変更したらできました// bot.multicastMessage(userIds, [bot.flexMessage(flex_message, "テキスト")]);

投稿2023/09/19 11:02

Tsubanishi

総合スコア43

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.38%

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

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

質問する

関連した質問