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

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

新規登録して質問してみよう
ただいま回答率
85.35%
LINE Messaging API

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

Google スプレッドシート

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

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

550閲覧

Googleスプレッドシート×LINEbot スプレッドシートに想定通り記録されない

imu2452

総合スコア6

LINE Messaging API

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

Google スプレッドシート

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

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2021/05/19 13:58

LINE Messaging APIとGoocleスプレッドシートを使用して数字を記録するLINEbotを作っています。

メッセージを送信した際にスプレッドシートの"A1, B1, C1"の各セルに"送信された数値, A1+今までの数値の合計, 更新日時"が記録される想定ですが、B1のセルに毎回"数値"ではなく、"total"と入力されてしまいます。

何度もコードを確認しているのですが、どこが原因で発生している動作なのかわかりません。
setData関数の記述方法を色々試したり確認しましたが、解決には至りませんでした。
コードに不備がありましたら、教示いただけますと幸いです。

質問が不慣れなため、情報が不足しておりましたら申し訳ありません。
補足にて追加いたしますので、不足している情報がありましたらコメントにてお願いいたします。

イメージ説明

イメージ説明

イメージ説明

以下実装コードです

JavaScript

1<一部省略> 2 3// スプレッドシートに情報を登録 4function setData(userMessage, total, updateDate){ 5 // sheet.getRange(1, 1, 1, 3).setValues(values); 6 sheet.getRange("A1").setValue(userMessage); 7 sheet.getRange("B1").setValue(total); 8 sheet.getRange("C1").setValue(updateDate); 9 10} 11 12function doPost(e) { 13 // WebHookで受信した応答用Token 14 var replyToken = JSON.parse(e.postData.contents).events[0].replyToken; 15 // 応答メッセージ用のAPI URL 16 var url = 'https://api.line.me/v2/bot/message/reply'; 17 18 var template_start = '文字数貯金です。 \n'; 19 var template_finish = 'またのご利用をお待ちしております。'; 20 // 更新日時 21 var updateDate = getNowYMD(); 22 // ユーザーのメッセージを取得 23 var userMessageJson = JSON.parse(e.postData.contents).events[0].message.text; 24 var userMessage = Number(userMessageJson); 25 26 // totalを取得 27 var totalRange = sheet.getRange("B1"); 28 var total = Number(totalRange.getValue()); 29 30 total += userMessage; 31 32 // 返信内容 33 var botMessage = updateDate + " 現在、 \n 【" + userMessage + "】文字の入金を確認しました。 \n" + "現在の貯金額は " + total + " 円です。 \n"; 34 35 // データ登録 36 // var values = [[userMessage, total, updateDate]]; 37 setData(userMessage, total, updateDate); 38 var replyMessage = template_start + botMessage + template_finish; 39 40 // 返信メッセージ送信 41 <省略> 42 43

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

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

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

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

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

macaron_xxx

2021/05/19 23:16

確認ですが、修正のたび、デプロイしてますか?
imu2452

2021/05/20 01:47

はい。 修正後は デプロイ→LINEDeveloperでwebhookURLの修正→動作確認 の手順を踏んでいます。
guest

回答1

0

このあたりでログを取るとなんと出ますか??

gas

1function setData(userMessage, total, updateDate){ 2 console.log(total) //追記 3 4} 5 6 7 // ユーザーのメッセージを取得 8 var userMessageJson = JSON.parse(e.postData.contents).events[0].message.text; 9 var userMessage = Number(userMessageJson); 10 console.log(userMessage)//追記 11 12 // totalを取得 13 var totalRange = sheet.getRange("B1"); 14 var total = Number(totalRange.getValue()); 15 console.log(total)//追記 16 17 18 total += userMessage; 19 console.log(total)//追記 20

投稿2021/05/26 10:59

Tatsunosuke

総合スコア599

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問