最近有一些朋友问我,有没有可能获取到会议的详情,我搜索了目前所有的 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
节点里,大家也可以在下面这个页面找到所有的权限。 Enable resource-specific consent in Teams - Teams | Microsoft Docs