首页 > 解决方案 > 如何在 botframework 网络频道中捕获 user_country/city?

问题描述

我想在应用程序洞察中捕获最终用户位置(国家/城市),形成在网络聊天频道上运行的 azure botframework 聊天机器人。应用洞察检测已经到位页面视图和正在收集的自定义事件,但似乎未正确填充 client_City 和 client_CountryOrRegion。是否有特定的频道或网络服务配置?

标签: botframeworkweb-chat

解决方案


可以使用以下方法访问地理位置数据。如果用户授予对这些数据的访问权限,这将为您提供经度和纬度。

然后,您将需要另一个进程或库来将位置数据转换为现实世界中的物理位置。

navigator.geolocation.getCurrentPosition( async (position) => {
  const { latitude, longitude } = position.coords;
  console.log(latitude, longitude)
})

有一些 NPM 包也可以为你做这些。

如果您在此处查看我发布的答案,您可以看到我提供的有关如何获取位置数据以用于生成和显示地图作为机器人功能的示例。

请注意,在上述答案中,机器人正在响应显示地图的请求,正在发送活动,然后由网络聊天接收。网络聊天在收到请求后,将获取位置数据并显示地图。

在您的情况下,您将希望将数据发送回机器人,以便机器人随后执行某些操作。您可以参考网络聊天的b.piggyback-on-outgoing-activities示例了解如何执行此操作。

希望有帮助!


推荐阅读