首页 > 解决方案 > 如何通过 REST API 为连接到 Microsoft Teams 频道的机器人获取机器人 ID 和用户 ID

问题描述

我们使用Microsoft bot框架并且需要通过 REST API 从外部应用程序(在不同的环境中运行,例如本地)向连接到 Microsoft Teams 通道的机器人发送消息。以下 REST API 有助于创建对话

{
    "bot": {
        "name": "someBot",
        "id": "xxx-some-bot-id"
    },
    "members": [
        {
            "name": "some user",
            "id": "xxx-some-user-id"
        }
    ],
  "channelData": {
    "tenant": {
      "id": "xxx-some-teanant-id"
    }
  },
}

此 API 返回的 id 稍后可用于通过以下方式发送消息/v3/conversations/{id}

这里有几个问题:

  1. 是否有任何 REST API 可用于获取上述有效负载中使用的成员 ID(用户 ID)和机器人 ID?换句话说,外部应用程序如何在进行 API 调用时读取这两个内部 Id 以供使用?在 Bot API 文档页面中找不到合适的 API:Bot Framework REST API

  2. 对于上述情况,是否有办法通过 REST API 获取租户 ID?(我知道可以从 Teams 应用程序 URL 中读取

谢谢

标签: botframeworkchatbotmicrosoft-teams

解决方案


基本上不,您不能从 Teams 外部检索 ID(出于隐私/垃圾邮件预防的原因)。您的机器人将通过以下几种方式接收它们:

  • 在个人环境中安装时,您的机器人将收到 membersAdded 类型的消息,其中包含必要的信息。

  • 如果您的机器人安装在该人所属的团队中,您可以检索该团队的名册,其中也包含必要的信息。

请参阅:https ://docs.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/send-proactive-messages


推荐阅读