Skip to the content.

如何获取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