如何获取Teams Meeting 详情
最近有一些朋友问我,有没有可能获取到会议的详情,我搜索了目前所有的 teams 文档,发现有一个api可以获取,不过在我写这篇文章的时候,这个 api 还在 preview 阶段,可能在正式发布前,还会有一些变化,但是按照之前的经验,这个变化基本不会有。 :)
我们来看看如果在 c# 代码里调用这个 api
MeetingInfo meetingInfo = await TeamsInfo.GetMeetingInfoAsync(turnContext);
如果大家喜欢直接使用 http request 来调用 api 的话,url 如下:
GET /v1/meetings/{meetingId}
返回的会议信息有如下这些:
{
"details": {
"id": "{meeting ID}",
"msGraphResourceId": "",
"scheduledStartTime": "2022-01-30T08:50:00+00:00",
"scheduledEndTime": "2022-01-30T09:30:00+00:00",
"joinUrl": "https://teams.microsoft.com/l/abcdef.....",
"title": "test meeting title",
"type": "Scheduled"
},
"conversation": {
"isGroup": true,
"conversationType": "groupchat",
"id": "{meeting chat ID}"
},
"organizer": {
"id": "{user ID}",
"aadObjectId": "{user AAD ID}",
"tenantId": "{Tenant ID}"
}
}
大家可以看到这里面有这些信息:meeting id,会议开始和结束时间,会议类型,会议加入的 url,会议标题,会议组织者的 id 和 aad id,会议对应的会话的 id。
看到这里,大家是不是已经准备开始写代码跃跃欲试了?如果大家直接调用的话,可能会遇到一个关于权限的错误。原因是这个 api 需要 RSC 权限配置。
打开我们 app 的 manifest.json 文件,找到 webApplicationInfo
节点,加入 OnlineMeeting.ReadBasic.Chat
,如果大家对 RSC 不太了解,可以拷贝如下的 json
"webApplicationInfo": {
"id": "你的 bot id",
"resource": "https://RscPermission",
"applicationPermissions": [
"OnlineMeeting.ReadBasic.Chat"
]
}
如果我们的 app 还需要其他 RSC 的权限,可以把所有的权限列在 applicationPermissions
节点里,大家也可以在下面这个页面找到所有的权限。
https://docs.microsoft.com/en-us/microsoftteams/platform/graph-api/rsc/resource-specific-consent
Written on January 30, 2022