【问题标题】:How to capture user_country/city in botframework web channel?如何在 botframework 网络频道中捕获 user_country/city?
【发布时间】:2021-05-13 13:58:58
【问题描述】:

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

【问题讨论】:

  • 明确地说,您在托管页面上设置了应用程序洞察力,并且希望它从那里获取位置数据?或者,您是否在机器人上设置了应用程序洞察力,并且您想知道如何将位置数据从页面传递到您的机器人,从而传递到应用程序洞察力?如果是后者,我也许能帮上忙。
  • 后来的见解是在机器人本身上配置的,我正在寻找从渠道(或任何可以从天蓝色资源端控制的方式)获取此信息的方法
  • @StevenKanberg 你能提供以上任何补充吗:)?
  • 接受/投票支持更大的 Stack Overflow 社区和任何有类似问题的人。如果您觉得我的回答足够,请“接受”并点赞。如果没有,请告诉我我还能提供哪些帮助!

标签: botframework web-chat


【解决方案1】:

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

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

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

有一些 NPM 包也可以为你做一些这样的事情。

如果您查看我发布的答案 here,您可以看到我提供的一个示例,说明如何获取位置数据以用于生成和显示地图作为机器人的一项功能。

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

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

希望有帮助!

【讨论】:

    猜你喜欢
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 2020-12-11
    • 1970-01-01
    • 2012-12-17
    相关资源
    最近更新 更多