2017-10-09 1 views
0

J'essaie actuellement de stocker des données via l'assistant dans l'espace de stockage local sur l'appareil ou sur le compte Google.Enregistrement de données par compte Google dans l'Assistant Google

Exemple:

J'appelle dans l'assistant Google mon application assistant. Cela demande maintenant de sauvegarder une note, qui devrait maintenant être stockée quelque part. J'utilise un webhook, qui envoie la requête de Google à mon serveur web et y traite les données.

Mes pensées

Bien sûr, je pourrais enregistrer dans une base de données MySQL, mais sans aucune qualification, je ne peux pas le stocker pour cette personne en particulier. Ma première idée était de l'enregistrer dans un cookie, mais malheureusement, API.AI (que j'utilise pour l'application Assistant Google) créera toujours une nouvelle session, donc je ne peux pas l'enregistrer ici. J'ai également vu que je peux ajouter account-linking à l'application. Mais je ne sais pas si ce service est construit pour ça? Y a-t-il aussi un autre moyen d'atteindre ce problème?

Merci beaucoup pour votre réponse.

Répondre

2

Vous n'avez pas accès au compte Google utilisé dans l'Assistant Google. Vous n'avez pas non plus accès au stockage local de l'appareil sur lequel l'Assistant est en cours d'exécution. Gardez à l'esprit qu'ils peuvent accéder à l'Assistant à partir de plusieurs périphériques à la fois.

Dans le cadre de l'information que votre webhook est envoyé via l'Assistant, vous pouvez obtenir un UserID unique, mais anonyme, que vous pouvez traiter de la même manière qu'un cookie Web. À moins que l'utilisateur ne prenne une action délibérée pour révoquer cet ID, il sera cohérent pour cette personne sur tous les appareils auxquels son compte est lié via l'Assistant. Vous pouvez utiliser cet ID pour stocker des informations sur ou pour l'utilisateur dans une base de données (par exemple, Firebase Database) dans le cloud ou sur vos serveurs, car la prochaine fois qu'ils utiliseront votre service, ils présenteront le même ID. , mais vous ne pouvez pas le renvoyer directement sur l'appareil Android ou iOS de l'utilisateur. Puisque les utilisateurs peuvent accéder à l'Assistant (et, par conséquent, à votre Action) sur plusieurs périphériques, cela peut être une bonne chose.

De plus, un ID de session est disponible. Comme vous le supposez, c'est nouveau pour chaque session et non lié à un utilisateur. Dans certains cas, il génère un nouvel ID utilisateur pour chaque session, mais il s'agit de cas où l'utilisateur utilise un compte générique/par défaut sur Google Home. Vous ne pouvez donc pas croire que la personne physique qui revient est la même que celui qui vous a contacté avant.

La liaison de compte peut vous aider dans certains cas, mais nécessite beaucoup de travail supplémentaire. Si vous liez leur compte "Votre" compte Assistant et que votre compte est autorisé à leur envoyer quelque chose comme un message Cloud Firebase, vous pouvez écrire une application qui s'exécute sur le périphérique et gérer le FCM en stockant les données dans le stockage local. .

+0

Merci beaucoup. Donc, pour une conclusion courte, je dois utiliser le 'userId' pour identifier l'utilisateur. S'il vous plaît corrigez-moi si j'ai mal compris. –

+0

C'est exactement ça. {: Mais, gardez à l'esprit, cet ID utilisateur ne correspond à rien d'autre. – Prisoner