2017-10-09 8 views
0

現在、アシスタント経由でローカルストレージ内の一部のデータをデバイスまたはGoogleアカウントに保存しようとしています。GoogleアカウントごとにGoogle Assistantにデータを保存

例:私は私のアシスタントアプリGoogleのアシスタントに呼び出す

。これでメモを保存するよう求められます。メモは今どこかに保存する必要があります。私はWebhookを使用しています。Webhookは、GoogleからWebサーバーに要求を送信し、そこにデータを処理します。

私の考え

もちろん、私は、MySQLデータベースに保存することができますが、任意の資格情報なし、私はこの特定の人のためにそれを保存することはできません。私の最初のアイデアはクッキーに保存することでしたが残念ながら、API Assistant(私はGoogle Assistantアプリで使用しています)は常に新しいセッションを作成するため、そこに保存することはできません。

私はaccount-linkingをアプリに追加することもできます。しかし、このサービスがそのために構築されているかどうかは分かりません。この問題を解決する別の方法がありますか?

すべての回答をいただきありがとうございます。

答えて

2

Googleアシスタントで使用されているGoogleアカウントにはアクセスできません。アシスタントが実行されているデバイスのローカルストレージにアクセスすることもできません。アシスタントが複数のデバイスから一度にアシスタントにアクセスできることに注意してください。

Webhookがアシスタント経由で送信される情報の一部として、Webクッキーと同様に扱える一意の匿名のUserIDを取得できます。ユーザーがこのIDを取り消すために意図的な操作を行わない限り、アシスタントを介してアカウントが関連付けられているすべてのデバイスでこのユーザーと一貫性があります。

このIDを使用して、クラウド内またはサーバ上のデータベース(Firebaseデータベースなど)にユーザに関する情報を格納することができます。次回はサービスを使用して同じIDただし、ユーザーのAndroidまたはiOSデバイスに直接保存することはできません。ユーザーは複数のデバイス間でアシスタント(したがって、あなたの行動)にアクセスできるので、これは良いことかもしれません。

利用可能なセッションIDがさらにあります。あなたが推測しているように、これはセッションごとに新しいものであり、ユーザーとは関係ありません。セッションごとに新しいユーザーIDが生成されるケースもありますが、ユーザーがGoogleホームで一般/既定のアカウントを使用しているため、返される物理的な人物が前にあなたに連絡した人。

アカウントリンクは場合によっては手伝ってもらえますが、多大な労力を必要とします。あなたのアシスタントアカウントの「あなたの」アカウントをリンクし、そのアカウントにFirebase Cloud Messageのようなものを送る許可がある場合、そのデバイス上で動作するアプリを書くことができ、ローカルストレージにデータを保存することでFCMを処理することができます。

+0

ありがとうございました。だから簡単な結論として、私は 'userId'を使ってユーザを特定しなければなりません。私が誤解した場合は私を修正してください。 –

+0

それはまさにそれです。 {:でも、このUserIDは他のものには対応していません。 – Prisoner

関連する問題