我有一个带有bot的Teams,并且正在尝试使用Microsoft来检索频道会话的所有成员。
根据Microsoft 这里的说法,GET网址是.
GET https://graph.microsoft.com/v1.0/teams/{team-id}/channels/{channel-id}/members当我在通道中发送bot时,它提供了一个事件上下文字典,其中包括如下所示的"channelData“参数(用”X“稍作修改):
channelData: {
teamsChannelId: '19:9b9d91fb85ec4146972XXXXXXXXXXXXX.tacv2',
teamsTeamId: '19:B9zDXPWNaGn03wB8iifYw6XXXXXXXXXXXXXX@thread.tacv2',
channel: { id: '19:9b9d91fb85ec414XXXXXXXXXXXXXXXXa@thread.tacv2' },
team: {
id: '19:B9zDXPWNaGn03wB8iifYw6XXXXXXXXXXXXXX@thread.tacv2'
},
tenant: { id: 'b06932a5-6eed-4e9a-XXXX-XXXXXXXXX' }但是,当我用teams-id = team{id}或tenant{id}和channel-id = channel{id}调用GET端点时,它返回以下内容:
{
"error": {
"code": "NotFound",
"message": "No Team found with Group id: b06932a5-6eed-4e9a-XXXX-XXXXXXXXX",
"innerError": {
"message": "No Team found with Group id: b06932a5-6eed-4e9a-XXXX-XXXXXXXXX",
"code": "ItemNotFound",
"innerError": {},
"date": "2022-05-30T21:13:42",
"request-id": "d8e2dfc5-0410-422b-b79d-96b73f38196b",
"client-request-id": "d8e2dfc5-0410-422b-b79d-96b73f38196b"
}
}
}我认为API真正想要的是team-id = "groupID“,因为当我进入Teams应用程序和”到通道的链接“时,它给了我以下内容.
https://teams.microsoft.com/l/channel/19%3a3ca3a04e49c447XXXXXXXXXXXXXXXXXXthread.tacv2/Test%2520Channel%25201?groupId=8325270c-856a-4271-XXXXXXXXXXXXXX&tenantId=b06932a5-6eed-4e9a-XXXX-XXXXXXXX然后,如果我在同一个GET调用中使用“...and”,它会给出期望的响应,其中列出了会话的所有成员。
现在,这将完全没有问题,除非.--我不能对bot消息中的"groupId“在第一次添加bot时发生的"onMembersAdded”事件进行上下文转换( context...even )。
我已经阅读了每一篇文章/论坛列表,我可以在这上面找到,但到目前为止,我完全是stumped...hopefully,我错过了一些简单的东西,有人可以指出!
发布于 2022-06-02 00:34:10
好的,最后指出了这个out...the链接这里展示了如何获得bot的附加上下文。
您必须调用TeamsInfo.getTeamDetails(turnContext)来检索aadGroupID:
export class MyBot extends TeamsActivityHandler {
constructor() {
super();
// See https://aka.ms/about-bot-activity-message to learn more about the message and other activity types.
this.onMessage(async (turnContext, next) => {
const teamDetails = await TeamsInfo.getTeamDetails(turnContext);
if (teamDetails) {
await turnContext.sendActivity(`The group ID is: ${teamDetails.aadGroupId}`);
} else {
await turnContext.sendActivity('This message did not come from a channel in a team.');
}
// By calling next() you ensure that the next BotHandler is run.
await next();
});
}
}https://stackoverflow.com/questions/72440169
复制相似问题