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

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

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

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

Google Apps Script

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

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Q&A

1回答

1338閲覧

LINE botをuserごとに異なる動作をさせたい。

dfdghja

総合スコア0

LINE Messaging API

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

Google Apps Script

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

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

0グッド

1クリップ

投稿2020/05/30 14:45

前提・実現したいこと

GASでLine botを作成しています。
googleカレンダーに登録する機能をBotに付けていますが、同時に他のユーザがbotと会話をした時に、データがぐちゃくちゃになるのを避けたいのですがどうすれば回避できるのかが分かりません。useridで管理すればいいと言うのは分かりますが、そのデータの保存方法が分かりません。

JSON

1{ 2"userinfo" : 3{ 4"name" : "xxxx", 5"id" : "yyy" 6"state" :1, //次の処理を決める. 7"groupid" :["aaa"] 8}, 9{ 10"userinfo" :{ 11"name" : "xxxx", 12"id" : "yyy" 13"state" :1, //次の処理を決める. 14"groupid" :["aaa"] 15} 16}

上記のようなJSONを用いて解決しようと試みましたが、
JSONをうまくキャッシュに保存できず。JSON.stringifyを試しましたが、うまくいきませんでした。キャッシュに保存するときのKey名を各userのIDにできればいいのですがそのような方法はありませんか?また、このJSONで保存する方法より効率的な方法があれば教えて頂きたいです。

現在は、キャッシュを用いて「いつなのか」「何時から何時までなのか」「イベント名」をbot側が聞いています。キャッシュで状態を保存して、このキャッシュのデータを基に次の処理にプログラムを進めています。しかし、この方法だと、どうしても2人以上同時にbotと会話をすると問題が起きてしまいます。(https://qiita.com/MxShun/items/7a563a795d41cdc0f1dc
のページの仕組みと同様なキャッシュの使い方をしています)

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

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

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

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

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

draq

2020/05/30 20:52

排他制御のやり方の質問なんでしょうか?他のクラウドデータベース利用するなり、ユーザーごとに保存先のファイル変えるなりすればいいのでは?
dfdghja

2020/05/31 01:10

排他制御と言うのですね。用語を教えてくださりありがとうございます。 すみません。やり方が創造できなく、質問をさせて頂きました。
draq

2020/05/31 01:22

本当に排他制御の問題なのか不安になる返答ですが... 例えば、ユーザーIDをファイル名にして、Google Driveにでもユーザーごとの会話履歴を保存するだけで排他制御についてはほぼ解決なのでは?同一ユーザー間での排他制御は不要な前提ですが。
guest

回答1

0

私ならLIFFでHTMLフォーム作って、作ったHTMLにはGoogleフォームのnameを埋め込んで送信させてカレンダー登録みたいな流れにします。

投稿2020/06/21 08:54

MasakiTM

総合スコア115

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問