【问题标题】:Unable to send message to end user (msteams) via Bot无法通过 Bot 向最终用户 (msteams) 发送消息
【发布时间】:2021-09-04 22:21:34
【问题描述】:

面临通过机器人服务向最终用户(msteams)发送主动消息的问题,

我尝试使用 bot 框架 python SDK,即使获取对话 ID,我也会收到以下错误。

botbuilder.schema._models_py3.ErrorResponseException:操作返回无效状态代码“未授权”

因此我尝试通过邮递员和休息 API 模拟调用,在这里我能够成功获取对话 ID,但如果我尝试使用该对话 ID 通过活动进一步发送消息,我将无法做到这一点。以下是休息端点和有效载荷。在这里,我收到错误有效载荷的错误。

https://smba.trafficmanager.net/apis/v3/conversations/8:orgid:949a3f72-b82c-4b89-b2de-9defbe6ae7cd/activities

{
    "type": "message",
    "recipient": {
        "id": "29:1ZcsKdk0rsLmsywvI2SNQ2J7OIz"
    },
    "from": "bot",
    "channelData": {
        "notification": {
            "alert": "true"
        }
    },
    "text": "Hello world"
}

【问题讨论】:

  • Bot Framework 对进出 bot 的消息进行身份验证。您有 Microsoft 应用 ID 和密码吗?您是否在 Azure 门户中注册了机器人频道?您是否关注特定样本?
  • 是的,我在 portal.azure.com 中注册了机器人频道,我有应用程序 ID 和密码,我可以使用它生成对话 ID,问题是我无法向用户发送消息那个对话ID。在我们的例子中,我使用 Rasa Stack 作为消息传递端点,我希望从这里向特定的最终用户发送消息。其他问题是我从 MsTeams 获取 sender_id 但无法获取用户的个人资料或无法找到它与 azure 广告用户个人资料的链接
  • 请只关注这一问题。您是在每个频道上收到未经授权的错误,还是只在 Teams 上收到未经授权的错误?
  • 我在渠道和团队方面都遇到了问题,是否有任何文件可以建议 Azure 方面的必要设置来解决此问题
  • 您的机器人代码是否配置为使用您的 Microsoft 应用 ID 和密码来验证传入和传出消息?

标签: json python-3.x azure botframework


【解决方案1】:

有效负载存在问题,我添加了 BOT_ID 和名称,并且能够成功地将消息发布给最终用户。以下是有效载荷。 有效载荷:

  { "type":"message",
   "recipient":{  
     "id":"29:1dUxQXVlH6QGByu1T9MR4p5g0c5URMaBtKqGU74C3zdowO78nPbuu2dg- qj9o02OkJ4MYXt2I-nxDgf9ga9EY5w"
     },
   "from":{  
      "id":"28:d7afe8c9-f0cd-434f-8906-be2b744229ac",
      "name":"bot"
    },
    "channelData":{  
    "notification":{  
     "alert":"true"
    }
   },
   "text":"Hello  "
   }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 2021-03-02
    • 2020-02-17
    • 1970-01-01
    • 2016-05-09
    • 2018-07-22
    • 1970-01-01
    相关资源
    最近更新 更多