Dialogflow es 在Google Assistant中存储每个Google帐户的数据

Dialogflow es 在Google Assistant中存储每个Google帐户的数据,dialogflow-es,actions-on-google,Dialogflow Es,Actions On Google,我目前正试图通过助手将一些数据存储在本地存储设备或谷歌帐户中 示例: 我调用谷歌助手我的助手应用程序。现在需要保存一张便条,该便条应该存储在某个地方。我正在使用一个webhook,它将来自Google的请求发送到我的web服务器,并在那里处理数据 我的想法 当然,我可以将数据保存在MySQL数据库中,但是如果没有任何凭据,我无法为这个特定的人存储数据。我的第一个想法是将其保存到cookie中,但不幸的是,API.AI(我用于GoogleAssistant应用程序)将始终创建一个新会话,因此我无法

我目前正试图通过助手将一些数据存储在本地存储设备或谷歌帐户中

示例:

我调用谷歌助手我的助手应用程序。现在需要保存一张便条,该便条应该存储在某个地方。我正在使用一个webhook,它将来自Google的请求发送到我的web服务器,并在那里处理数据

我的想法

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

我还看到我可以添加到应用程序中。但我不知道这项服务是否就是为此而建立的?还有别的办法解决这个问题吗


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

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

作为您的webhook通过助手发送的信息的一部分,您可以获得一个唯一但匿名的用户ID,您可以将其与web cookie进行类似的处理。除非用户有意撤销此ID,否则此ID将在其帐户通过助手绑定到的所有设备上保持一致

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

此外,还有一个可用的会话ID。正如您所猜测的,这对于每个会话都是新的,并且与用户无关。在某些情况下,它会为每个会话生成一个新的用户ID,但在这些情况下,用户在他们的Google Home上使用一个通用/默认帐户,因此您不能相信返回的物理用户与之前与您联系的物理用户相同


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

非常感谢。总之,我必须使用
userId
来识别用户。如果我误解了,请纠正我。就是这样。{:但是,请记住,这个用户ID与其他任何东西都不对应。