微软机器人框架地理定位

本文关键字:定位 框架 机器人 微软 | 更新日期: 2023-09-27 18:04:42

如何使用Bot框架获得用户地理坐标?我知道我必须使用实体,但我不确定如何实际获得坐标,而不是定义它们。

微软机器人框架地理定位

不幸的是,没有自动获取用户位置的方法,因为会侵犯用户隐私

然而,你总是可以请求用户的位置。根据他们使用的聊天频道,他们可能会把他们的位置发给你(我在电报上测试过)

作为起点,您可能需要阅读

如何发送位置

示例代码:

var reply = activity.CreateReply();
reply.ChannelData = new TelegramCustomMessage
{
    Method = "sendLocation",
    Parameters = new Parameters
    {
        ChatId = "your_chat_id",
        Latitute = 0,
        Longitute = 0
    }
};
public class TelegramCustomMessage
{
    [JsonProperty(PropertyName = "method")]
    public string Method { get; set; }
    [JsonProperty(PropertyName = "parameters")]
    public Parameters Parameters { get; set; }
}
public class Parameters
{
    [JsonProperty(PropertyName = "chat_id")]
    public string ChatId { get; set; }
    [JsonProperty(PropertyName = "latitute")]
    public float Latitute { get; set; }
    [JsonProperty(PropertyName = "longitute")]
    public float Longitute { get; set; }
}

https://docs.botframework.com/en-us/csharp/builder/sdkreference/channels.html customtelegrammessages

https://core.telegram.org/bots/api sendlocation

如何从活动中提取地理位置

示例代码:

if (entity.Type == "Place")
{
    Place place = entity.GetAs<Place>();
    GeoCoordinates geoCoord = place.Geo.ToObject<GeoCoordinates>();
    // geoCoord object will contains Longtitude & Latitude
}  

https://docs.botframework.com/en-us/csharp/builder/sdkreference/activities.html地方

团队刚刚为框架添加了位置服务的支持。超级有用:https://github.com/Microsoft/BotBuilder-Location