如何在Dialogflow履行中检测到返回到Android上的Google Assistant的用户?

时间:2019-04-03 14:11:11

标签: node.js dialogflow actions-on-google dialogflow-fulfillment account-linking

我有一个正在运行的网站,用户已经在其中拥有帐户。而且我正在尝试创建一个可在Android上访问的Google Assistant代理,以帮助用户访问其信息。

我的问题是,每次需要登录时,我都无法检测到Android智能手机上的回访用户。

我尝试了“匿名用户身份”,但很快就会弃用。

还有另一种跟踪用户的方法吗?使用我可以存储的userId,因此我可以进行“我自己的帐户关联”,以将个人/智能手机与现有的用户帐户关联起来。 / p>

1 个答案:

答案 0 :(得分:1)

您的问题有几个角度。

有什么方法可以跟踪用户?

是...但是...

您可以将您生成的userId存储在user storage区域中。您确实需要像对待cookie一样对待它,因此某些司法管辖区可能对此加以限制,但这是moving from the anonymous ID的一种即将被关闭的方法。

但是...

如何让他们通过操作登录到我的服务?

那是问题。 General Policies规定了收集用户数据的以下限制:

  

身份验证数据   (包括密码,PIN和安全问题的答案)

     

不要通过对话界面(文本或语音)收集身份验证数据。   链接用户帐户后,可以将PIN或密码用作第二次验证过程的一部分。

因此,您需要使用帐户链接来连接到服务上的现有帐户。

如果我不需要Google登录,该如何进行帐户关联?

如果Google Sign-In for Assistant将(或可能)在个人资料中提供与您所拥有的信息相匹配的信息,您仍然可以使用。因此,它不需要使用相同的帐户-只需使用相同的电子邮件即可(例如)。

但这还不够。

对于其他情况,您可以考虑进行设置以使其与您控制的OAuth server一起使用。

那么,如果我设置了使用Google登录的OAuth服务器,为什么还要使用Google登录?

如果可以使用Google登录,则可以简化流程。可以使用语音(例如智能扬声器)完全完成此操作,而无需要求用户转到电话才能完成登录。因此,如果您的帐户系统中包含用户的电子邮件地址,并且您也可以通过Google登录获取此电子邮件地址,则可以连接这两个帐户。

在某些情况下,例如,如果希望用户首先登录您网站上的帐户,则他们甚至不需要这样做。如果语音客户端和网络客户端都使用相同的Google项目,则authentication will take place automatically