DialogFlow V2:无需关联谷歌账户追踪匿名用户ID的方法咨询
嘿,这个问题我刚好有实操经验!其实DialogFlow V2是支持无需关联谷歌账户的匿名用户追踪的,只是这个标识没有单独拆成userId字段,容易被忽略,下面给你详细说两种可行的方式:
利用原生集成的Session ID
如果你用的是DialogFlow官方提供的集成(比如DialogFlow Messenger、第三方聊天平台),Webhook请求里的session字段其实就包含了匿名追踪的关键信息。它的格式一般是projects/{你的项目ID}/agent/sessions/{会话ID},这里的会话ID就是系统自动生成的匿名标识——只要用户的会话上下文没被清除(比如浏览器Cookie没删除、聊天窗口没关闭),这个ID就会保持一致,完全可以用来关联多轮对话,而且全程不需要用户绑定谷歌账户。自定义客户端传入匿名ID
要是你自己开发客户端(比如自定义网页、APP),那灵活性更高:你可以自行生成一个匿名ID(比如用UUID生成器),然后在每次调用DialogFlow API时,把这个ID作为session参数的一部分传递。比如把session设为projects/{你的项目ID}/agent/sessions/{你生成的匿名UUID},之后把这个UUID存在客户端的本地存储(比如localStorage、APP的偏好设置)里,就能跨会话持续追踪匿名用户,同样和谷歌账户无关。
你之前在fulfillment请求文档里没找到单独的ID字段,是因为这个匿名标识是嵌套在session字段里的,不是单独的userId属性,所以容易错过~
内容的提问来源于stack exchange,提问作者Kelvin Ma

