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

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

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

Google+とは、Googleが提供するソーシャル・ネットワーキング・サービスです。情報を共有するユーザーの範囲を設定する「サークル」、Webカメラで複数名の相手と無料でビデオチャットできる「ハングアウト」などの機能があります。

Google スプレッドシート

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

Google Apps Script

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

Q&A

解決済

1回答

301閲覧

スプレッドシートの内容をGASで抽出してLINEへ配信

Tsubanishi

総合スコア43

Google+

Google+とは、Googleが提供するソーシャル・ネットワーキング・サービスです。情報を共有するユーザーの範囲を設定する「サークル」、Webカメラで複数名の相手と無料でビデオチャットできる「ハングアウト」などの機能があります。

Google スプレッドシート

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

Google Apps Script

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

0グッド

1クリップ

投稿2023/09/21 05:25

実現したいこと

  • GASを使ってLINEbotを作りスプレッドシート内のB列の言葉を抽出して、抽出した人のLINE IDにのみLINEを送るような設定を作成しています。

TextFinderに1つのワードを入れた際は送れるのですが、2つ目のワードを追加したのですが2つ目を入れると両方配信されません
イメージ説明

前提

Google

1function targetingMessage() { 2 const cells = sheet.createTextFinder('猫').findAll(); 3 let userIds = []; 4//上記コードでは、猫の文字がB列にある人のIDにLINEでおめでとうございますと送ります// 5 for (const cell of cells) { 6 userIds.push(cell.offset(0, -1).getValue()); 7 } 8 bot.multicastMessage(userIds, [bot.textMessage(`おめでとうございます`)]); 9}

上記はLINEに配信されました
以下項目を増やしました

Google

1function targetingMessage() { 2 const cells = sheet.createTextFinder('猫').findAll(); 3 const cells2 = sheet.createTextFinder('うさぎ').findAll(); 4//上記うさぎのコードを追加し、B列に猫もしくは、うさぎが入ってる場合にLINEを送るとしたい// 5 let userIds = []; 6 for (const cell of cells) { 7 userIds.push(cell.offset(0, -1).getValue()); 8 } 9bot.multicastMessage(userIds, [bot.textMessage(`おめでとうございます`)]); 10}

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

エラーは出ないのですが、猫、うさぎ両方とも送れなくなってしまいました

特にエラーは出ていない

該当のソースコード

Google

1 const cells2 = sheet.createTextFinder('うさぎ').findAll();

上記コード追加したらLINE配信できなくなりました!

Google

1for (const cell of cells) { 2 userIds.push(cell.offset(0, -1).getValue());

上記のfor文がおかしいと思うのですが、わからず、ご教授していただけたら幸いです

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

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

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

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

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

YellowGreen

2023/09/21 06:56

const cells2 = sheet.createTextFinder('うさぎ').findAll(); の cells2 の値を userIds に入れる処理が抜けています。 let userIds = []; for (const cell of cells) { userIds.push(cell.offset(0, -1).getValue()); } の次に、 for (const cell of cells2) { userIds.push(cell.offset(0, -1).getValue()); } として cells2 の中身も userIds に格納してみても送信されませんか?
guest

回答1

0

自己解決

for文を2つに分けたらうまく配信できました

Google

1for (const cell of cells) { 2 userIds.push(cell.offset(0, -1).getValue()); 3 } 4 for (const cell of cells2) { 5 userIds.push(cell.offset(0, -1).getValue()); 6 }

投稿2023/09/21 06:59

Tsubanishi

総合スコア43

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.45%

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

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

質問する

関連した質問