在 Google 个 Google 助理中存储每个 Google 个帐户的数据

Store data per Google Account in Google Assistant

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

示例:

我将 Google Assistant 调入我的助手应用程序。这现在要求保存一个注释,它应该存储在某个地方。我正在使用网络钩子,它将请求从 Google 发送到我的网络服务器并在那里处理数据。

我的想法

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

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

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

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

作为通过 Google 助理发送的 webhook 信息的一部分,您可以获得一个唯一但匿名的 UserID,您可以像对待网络 cookie 一样对待它。除非用户有意采取行动撤销此 ID,否则此 ID 将在其帐户通过 Google 助理绑定的所有设备上保持一致。

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

此外,还有可用的会话 ID。正如您所猜测的,这对于每个会话都是新的,并且与用户无关。在某些情况下,它会为每个会话生成一个新的用户 ID,但在这些情况下,用户在其 Google 主页上使用 generic/default 帐户,因此您不能相信这个人返回的和之前联系你的一样

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