🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google スプレッドシート

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

Google Apps Script

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

Q&A

解決済

1回答

2923閲覧

GASにてスプレッドシートの範囲の中に特定の数字以上の場合のみLINEに通知をする。

KPS

総合スコア8

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google スプレッドシート

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

Google Apps Script

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

0グッド

0クリップ

投稿2019/11/25 02:17

編集2020/01/12 06:59

やりたい事
スプレッドシート内から160以上の数字がある場合の時のみLINEに通知。

就業時間160を超えたらラインに通知するというGASを作っているのですが、本を見ながらやっているのですが初心者なものでうまくいきません。
GASにてスプレッドシート内の内容を読み込む所まではできています。
LINEに160以上の数字がある時の②通知するのが出来ていないのでよろしくお願いいたします

function myFunction(){ var ss =SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('就業時間'); var lastRow = sheet.getLastRow(); for (var i = 2; i<=lastRow;i++){ if(!sheet.getRange(i,2)getValue()160>");{ Logger.log(sheet.getRange(i,1).getValue()); } } }

スプレッドシートから160以上が出たらまでを抜き出す所までやりたいのでよろしくお願い致します。

メッセージとLINEに通知するコードの修正をお願い致します。

こfunction sendHttpPost_lineAssigned(content){ var token = ['LINEトークン']; var options = { "method" : "post", "payload" : "message=" + content, "headers" : {"Authorization" : "Bearer "+ token} }; UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options); } function message(){ var message="月就業限度時間の近い方がいます。気をつけてください。" ; sendHttpPost(message); }

先ほどの教えて頂いたコードをそのままいれたのですが、どこを直したらよいでしょうか?
初心者な者でよくわからないです。
よろしくお願い致します。

function myFunction(){ SpreadsheetApp.getActiveSpreadsheet().getSheetByName('就業時間').getDataRange().getValues().filter(function(e){return e[1]>161;}).forEach(function(e){Logger.log(e[0]);}); } function sendHttpPost(content){ const token = "LINEトークン"; const options = { "method" : "post", "payload" : "message=" + content, "headers" : {"Authorization" : "Bearer "+ token} }; UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options); } function simpleNotifier() { SpreadsheetApp.getActive().getSheetByName('就業時間').getDataRange().getValues().filter(function(e) { return e >= 161;}).forEach(sendHttpPost); }

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

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

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

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

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

t_obara

2019/11/25 04:00

条件式:(例)https://tonari-it.com/gas-if/ をご覧になればヒントになりそうですが、そういうことではないのでしょうか。
papinianus

2019/11/26 00:57

省略しすぎて助言できません。 まずmyFunctionが2つあります。この状態では片方、おそらく下の方しか動作しないので、データがとれている、すら再現できません。 次に、データをとってから送信のつなぎ目のコードがありません。つまり解決したい部分でどう問題があるのかわかりません
guest

回答1

0

ベストアンサー

javascript

1function myFunction(){ 2 SpreadsheetApp.getActiveSpreadsheet().getSheetByName('就業時間').getDataRange().getValues().filter(function(e){return e[1]>161;}).forEach(function(e){Logger.log(e[0]); sendHttpPost(e[0]);}); 3} 4function sendHttpPost(content){ 5 const token = "LINEトークン"; 6 const options = 7 { 8 "method" : "post", 9 "payload" : "message=" + content, 10 "headers" : {"Authorization" : "Bearer "+ token} 11 12 }; 13 14 UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options); 15}

一度に両方できるようにしました。後生ですから、クローズしてください。

投稿2020/01/07 09:25

編集2020/01/16 18:51
papinianus

総合スコア12705

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

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

KPS

2020/01/12 02:37

ありがとうございます。 ログとれました。 このログにメッセージを追加してLINEに通知するコードはどうすればよいですか?
papinianus

2020/01/12 04:36

https://teratail.com/questions/222877 こちらに書きました。コメントさせていただいたとおり、シンプルなんとかとsendなんとかの2つでこちらのコメントにあることは実現できます。
KPS

2020/01/12 07:01

ありがとうございます。 send と シンプルを単純に追加したのですが、ログを読み取れないようなのですが、どこかコード入れ忘れてるのでしょうか? 初心者な者でよくわかりません。 よろしくお願い致します。
papinianus

2020/01/12 08:43

myFunctionを実行すればログが取得でき、simpleNotifierを実行すればラインに通知できます。 ログは実装の参考程度だと考えているので、同時に両方に出力したいと捉えてないのですが、同時に両方を実行したいのですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問