代码之家  ›  专栏  ›  技术社区  ›  Liam Kernighan

在Bot框架中从Skype接收传入消息时,除消息文本外,没有ChannelData

  •  5
  • Liam Kernighan  · 技术社区  · 7 年前

    当我接收到来自Telegram的消息时,我会在Activity.ChannelData字段中获得有关帐户的详细信息(例如用户名、会话id等)。

    {
      "update_id": ,
      "callback_query": {
        "id": "",
        "from": {
          "id": ,
          "is_bot": false,
          "first_name": "",
          "last_name": "",
          "username": "",
          "language_code": ""
        },
        "message": {
          "message_id": ,
          "from": {
            "id": ,
            "is_bot": true,
            "first_name": "",
            "username": ""
          },
          "chat": {
            "id": ,
            "first_name": "",
            "last_name": "",
            "username": "",
            "type": "private"
          },
          "date": ,
          "text": "Example text"
        },
        "chat_instance": "",
        "data": ""
      }
    }
    

    但说到Skype,我看到的只是短信和其他东西。

    {  "text": "Example text"}
    

    升级版: 这不应该是确切的用户名,任何额外的数据,如用户唯一的id将适合。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Steven Kanberg    7 年前

    不幸的是,返回的是通道特定的,由通道开发人员决定。决定这一点的不是Azure Bot服务或Bot框架的功能。

    至于知道是谁发的信息,这是不可能的。Skype只为每个用户返回一个唯一的id,以便在隐私问题上提供一个保密层。