私のGoogleエージェントのアクションは、クッキーのような特定の情報を呼び出し間に格納して取得することを希望します。これはどうすればいいですか?Dialogflowでエージェントの呼び出しを介して情報を保存および取得するにはどうすればよいですか?
答えて
あなたがしようとしていることに応じて、これを行う方法には多くの選択肢があります。ウェブクッキーに似ているわけではありませんが、類似点はあります。
あなたは単一の会話中に保持されているセッションクッキーの同等、情報が必要な場合は、あなたのオプションは、それぞれの上に、あなたに送信された情報の一部として提供されているセッションIDを使用して
- ですあなたの履行中にこれを追跡し、追跡する。
- Dialogflowコンテキストを使用して保持したい情報を保存する
- Googleで作成したJavaScriptライブラリーを使用している場合は、これを
app.data
オブジェクトに保存します。
あなたが長期的なクッキーの同等の会話の間で情報を保持したい場合は、あなたのオプションは、各呼び出しであなたに送信された情報の一部として提供される匿名のユーザーIDを使用して
- であり、これをあなたの履行の中で追跡する。
- actions-on-google javascriptライブラリを使用している場合は、これを
app.userStorage
オブジェクトに保存してください。 - JSONレスポンスの文字列の一部として
data.google.userStorage
の下に格納します。
異なるセッションIDをお持ちの各会話のために作成されたこれらの
セッションID
のそれぞれについてのいくつかの詳細。 sessionId
パラメータでウェブフックに送信されたJSONを調べることで、このセッションIDを取得できます。
これは、管理している何らかの種類のデータストアで調べることができます。
Dialogflowコンテキスト
コンテキストはDialogflowで利用できる強力なツールです。あなたはあなたのフルフィルメントwebhookの一部としてコンテキストを返し、コンテキストの名前、そのライフタイム(あなたのwebhookに返される会話のラウンド数)、コンテキストに関連するパラメータ(文字列キー/値ペア)。
コンテキストは、どのインテントが呼び出されるかを判断するのに役立ちます。 Dialogflowでインテントが認識されるためにアクティブでなければならないコンテキストを指定できます。
あなたはアクションオングーグルのNode.jsライブラリを使用している場合、あなたはこのようなものを使用してコンテキストを設定することができます。
var contextParameters = {
foo: "Something foothy",
bar: "Your local bar."
};
app.setContext("remember_this", 5, contextParameters);
あなたはapp.ask()
かapp.tell()
を呼び出す前にこれを行う必要があります。
それとも、応答
"contextOut": [
{
"name": "remember_this",
"lifespan": 5,
"parameters": {
"foo": "Something foothy",
"bar": "Your local bar."
}
}
]
あなたのウェブフックが呼び出される次回のcontextOut
ブロックの一部としてJSONで同等の操作を行うことができ、あなたはresult.contexts
配列を見て、どちらか、このコンテキストを取得することができますライブラリーのapp.getContext()
またはメソッドを使用してください。あなたはライブラリを使用している場合app.data
を使用して
、Googleはあなたのための作業の一部を行っています。 app.data
オブジェクトが作成されます。オブジェクトに設定した値は、セッションの存続期間中使用できます。後でWebhookへの呼び出しで読み込むだけです。
匿名ユーザーID
ユーザーが最初にアクションを使用すると、ユーザーIDが生成されます。このIDは、あなたの特定の情報にアクセスすることはできず、他のアクションには使用されませんが、それを見るたびに、以前のオカレンスで使用したのと同じユーザーであることが保証されます。しかし、クッキーのように、ユーザーはそれをリセットすることができ、ユーザーのアクションに対して新しいIDが生成されます。
これはJSONのoriginalRequest.user.userId
またはapp.getUser().userId
で取得できます。いったんそれを取得したら、このユーザーに関する情報を保存して取得するために、ある種のデータストアを使用します。 app.data
と同様にapp.userStorage
を使用して
、ユーザーごとに作成されapp.userStorage
オブジェクトもあります。このオブジェクトに加えた変更は、このユーザーとの会話の間に保存されます。
app.data
とは異なり、これはコンテキストに格納されません。それはそれ自身の記憶方法を持っています。あなたはどちらアクションオンGoogleのライブラリを使用していない場合、あなたはまだ応答して直接要求JSONを通じてuserStorage
へのアクセス権を持っているにJSONに
それを保存...
をリードしています。これを文字列として格納する必要がありますが、より複雑なオブジェクトを格納する必要がある場合は、JSONとして文字列化するのが一般的な方法です。
レスポンスでこの値をdata.google.userStorage
に保存し、ウェブフックのリクエストでoriginalRequest.data.user.userStorage
の下にこの値を取得できます。 https://developers.google.com/actions/identity/account-linking:あなたがアカウントのリンクをチェックアウトすることができますように
などのGoogleのクラウドデータベースを使用することができますがね。アカウントのリンクを使用すると、一意のキーを提供することによってGoogleと交換するエンドユーザー情報を収集することができます。このユニークなキーは、Googleから受け取ったすべてのリクエストの一部になります。そのユニークキーを取得すると、エンドユーザーから収集した情報を参照します。あなたのケースでは、資格情報またはエンドユーザ情報にアクセスするために必要な鍵を保管します。最初のリンクの後、取得した新しいデータは、アカウントのリンク時に取得された固有のキーに基づいて、収集された元の情報とともに保存されます。
- 1. UIテストでNSBundle情報を取得および編集するにはどうすればよいですか?
- 2. Retrofit呼び出しで変数の値を保存するにはどうすればよいですか?
- 3. Web呼び出しをタイムアウトしてJSONフィードを取得するにはどうすればよいですか?
- 4. ブックマークレットの呼び出しの間にオブジェクトを保存するにはどうすればよいですか?
- 5. UIImageをView Controllerに保存して呼び出すにはどうすればよいですか?
- 6. アンドロイドアプリでユーザーデータを保存および取得しますか?
- 7. Datastoreでユーザープロファイル情報をシリアライズおよびデシリアライズするにはどうすればよいですか?
- 8. メインアクティビティクラスを介して(別のクラスの)データベースを呼び出すにはどうすればよいですか?
- 9. ターミナルを介してjarクラスのメソッドを呼び出すにはどうすればよいですか?
- 10. ヘルプリンク、サポートリンク、およびアップデート情報を指定するにはどうすればよいですか?
- 11. Javaのコールバックで呼び出し元オブジェクトを取得するにはどうすればよいですか?
- 12. JavaScriptを使用してユーザー情報を保存および返信する
- 13. 呼び出し元スレッドでインターフェイスコールバックを呼び出すにはどうすればよいですか?
- 14. プログラムで呼び出されたJavadocドックレットの出力を呼び出し元から取得するにはどうすればよいですか?
- 15. アクションデリゲートの呼び出しの名前/詳細を取得するにはどうすればよいですか?
- 16. スタックトレース情報を取得するにはどうすればよいですか?
- 17. ストライプ情報を取得するにはどうすればよいですか?
- 18. アンドロイドでビューの配列を保存および取得する
- 19. clojureで関数を呼び出して結果を得るにはどうすればよいですか?
- 20. クッキーを使用してドロップダウンを含むフォームの値を保存および取得するにはどうすればよいですか?
- 21. C#ループ、SQLおよび取得に関する情報
- 22. FirefoxアドオンSDKを使用して配列から変数を保存および取得するにはどうすればよいですか?
- 23. それを呼び出した関数を呼び出す関数を取得するにはどうすればよいですか?
- 24. CoreAnnotations.CoNLLDepAnnotationおよびCoreAnnotations.GovernorAnnotationをStanfordCorenlpパイプラインを介して注釈として取得するにはどうすればよいですか?
- 25. Javaでgetsockoptを呼び出してSO_ORIGINAL_DSTを取得するにはどうすればいいですか?
- 26. express.jsをAJAX呼び出しでキャッチして報告するにはどうすればいいですか
- 27. SharedPreferencesで値を保存および取得する
- 28. Couchbaseでハッシュマップを保存および取得する
- 29. SharedPreferencesで日付を保存および取得する方法
- 30. asp.netでイメージを保存および取得する方法
Robinhood Trading Accountのポートフォリオ価値、現金および株価を教えてくれる代理店を築いた。私がこれらのいずれかを尋ねるたびに、私のバックエンドwebhook(CGI pythonスクリプト)が呼び出され、上流ロビンサーバーが照会されます。私はしばらくの間、すべての情報をキャッシュすることによってそれを避けたいと思います。また、私のユーザ名とパスワードは現在CGIのPythonでハードコードされています:-(私はあなたのアカウントデータでこれを取得して保存する方法を理解できません:回答ありがとう:-) –
あなたはフォローアップの質問をしたり、バックグラウンドを与えたり、正確に何を必要としているのかを示します。これがあなたの質問に答えるなら、それを受け入れるか、またはupvotingすることができます。そうでない場合、追加情報が必要な場合は、元の質問を更新して、試したことを明確にしてください。試したことについてはうまくいかないし、できるだけ多くの情報を提供してください。 – Prisoner