在Google智能助理中为每个Google帐户存储数据

时间:2017-10-09 22:07:18

标签: dialogflow actions-on-google

我目前正试图通过本地存储中的助手将一些数据存储到设备或Google帐户中。

示例:

我在Google智能助理中调用了我的助手应用。现在要求保存一个应该存储在某个地方的注释。我正在使用webhook,它将请求从Google发送到我的网络服务器并在那里处理数据。

我的想法

当然,我可以将数据保存在MySQL数据库中,但是如果没有任何凭据,我就无法为这个特定的人存储它。我的第一个想法是将其保存为cookie,但不幸的是,API.AI(我用于Google智能助理应用程序)将始终创建一个新会话,因此我无法将其保存在那里。

我还看到我可以将account-linking添加到应用中。但我不知道这项服务是否是为此而建的?有没有其他方法可以解决这个问题?

非常感谢您的每一个回复。

1 个答案:

答案 0 :(得分:2)

您无权访问Google智能助理上使用的Google帐户。您也无法访问运行智能助理的设备的本地存储 - 请记住,他们可以同时从多个设备访问智能助理。

作为您的webhook通过智能助理发送的信息的一部分,您可以获得一个独特但匿名的UserID,您可以将其与Web Cookie类似地对待。除非用户采取故意行动撤销此ID,否则此人在所有设备上都会保持一致,即他们的帐户通过智能助理绑定。

您可以使用此ID在云中或服务器上的数据库(例如,Firebase数据库)中存储有关用户的信息,因为下次他们使用您的服务时,他们将使用相同的ID,但是您无法直接将其发回去存储在用户的Android或iOS设备上。由于用户可以跨多个设备访问智能助理(以及您的操作),这可能是一件好事。

此外,还有会话ID可用。正如您所推测的那样,这对于每个会话都是新的,而不是与用户相关联。在某些情况下,它会为每个会话生成一个新的UserID,但这些是用户在其Google Home上使用通用/默认帐户的情况,因此您无法相信返回的实际人员是相同的就像以前联系过你的人一样。

在某些情况下,帐户关联可能对您有所帮助,但需要大量额外工作。如果你链接他们的助理帐户"你的"帐户,并且您的帐户有权向他们发送类似Firebase云消息的内容,您可以编写在设备上运行的应用,并通过将数据存储在本地存储中来处理FCM。