如何通过 REST API 为连接到 Microsoft Teams 频道的机器人获取机器人 ID 和用户 ID

How to get bot id and user id via REST APIs for a bot connected to Microsoft Teams channel

我们使用 Microsoft bot 框架,并且需要从外部应用程序(运行 在不同的环境中,例如本地)向连接到 Microsoft Teams 频道的机器人发送消息,通过休息 API。以下 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?换句话说,外部应用程序如何读取这两个内部Id以供使用 正在拨打 API 电话?在 Bot API 中找不到合适的 API 文档页面:Bot Framework REST API

  2. 有没有办法搞定租客 id via REST API 以及上述情况? (我知道可以从 Teams 应用程序中读取 URL

谢谢

基本上不,您无法从 Teams 外部检索 ID(出于 privacy/spam 预防原因)。您的机器人将通过以下几种方式接收它们:

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

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

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