【发布时间】:2021-09-03 05:54:47
【问题描述】:
在大多数情况下,用于 Bot Framework 的 ID 很容易找到,因为您会在用户发起联系时发送给机器人的“Activity”对象中收到它们。
但是,我正在尝试使用 Create Conversation 端点,这意味着我必须知道用户和机器人的 ID。
这样的简化请求(有效!):
{
"bot": {
"id": "28:4a4f500c-4897-4eaf-a364-c67942f41f6f"
},
"members":[{
"id": "29:1DUjC5z4ttsBQa0fX2O7B0IDu30R_6SfPMhwj-E1BwWmvYzb_IElqJwzPDocwPxTS0j8clYeb8gZx67V8TuChbA"
}],
"tenantId": "c7392b95-d07b-4653-87a7-6c709f527c42"
}
我需要通过 Graph API 以某种方式找到用户 ID(成员 ID)?或者也许通过 Bot Framework API?但是怎么做呢?
此外,我还希望能够以编程方式找到 Bot ID,因为我将把这个 bot 部署到许多租户,它会大大简化配置。但是,我在哪里可以找到机器人 ID,即使是手动的?它看起来不像是来自 Azure 的 App Id 或 Object id。
(我理解28和29的前缀,所以这与我的问题无关)
更新:
从接受的答案中得到的关键点如下:
The userId is unique to your bot ID and a particular user. You cannot reuse the userId between bots. The channelId is global.
这意味着我无法指望在其他地方找到 userId,这是一条非常重要的信息。
When your app is installed in any particular context, you receive an onMembersAdded activity.
显然,即使我刚刚为用户安装了机器人,我也可以在我的机器人中收到一条消息。这将是我找到 userId 的机会。
当我尝试这个时,我会在这里确认这是否真的发生在我的场景中,它是个人选项卡中的机器人。
【问题讨论】:
-
您好,如果@RajeeshMenoth 给出的答案能满足您的要求,您能否点赞。
-
@Jagadeesh-MSFT 我会的。这是一些非常好的和有价值的信息,当然值得一票,但它不能回答我的问题,因为他们认为我手边有一个 Activity 对象。这个问题是关于让机器人发起对话的。
-
您好@NielsBrinch,AnsumanBal-MT 提供的答案是否有帮助?如果是,那么您是否愿意将答案标记为已接受,以供社区成员将来参考?
-
Prabhu,不。但是 Karthik 正确理解并回答了这个问题,我将他的回答标记为已接受。
标签: azure microsoft-graph-api botframework microsoft-teams azure-bot-service