获取会议 ID 和组织者 ID
你的应用可以使用会议 ID 和会议组织者的用户 ID(也称为组织者 ID)提取会议脚本和录制内容。 Graph REST API 基于会议 ID 和组织者 ID 提取脚本和录制内容,这些 ID 在 API 中作为参数传递。
注意
计划会议的会议 ID 可能会在几天内过期(如果未使用)。 可以通过使用会议 URL 加入会议将其恢复。 有关不同会议类型的会议过期时间线的详细信息,请参阅会议过期。
若要获取用于提取脚本和录制的会议 ID 和组织者 ID,请选择以下两种方法之一:
订阅变更通知
你可以订阅应用以接收计划会议事件的更改通知。 当应用收到有关订阅的会议事件的通知时,如果应用通过所需的Microsoft Entra权限获得授权,则它可以获取脚本和录制内容。
应用会收到其订阅的会议事件类型的通知:
当应用收到订阅的会议事件的通知时,它可以从通知消息中检索会议 ID 和组织者 ID。 根据获取的会议详细信息,你的应用可以在会议结束后提取会议脚本和录制内容。
使用用户级通知获取会议详细信息
选择将应用订阅到用户级通知,以获取特定用户的会议事件的脚本和录制内容。 当为该用户安排会议时,你的应用会收到通知。 应用也可以使用日历事件接收会议通知。
若要将应用订阅日历事件,请参阅 Microsoft Graph 中 Outlook 资源的更改通知。
使用以下示例订阅用户级通知:
POST https://graph.microsoft.com/v1.0/subscriptions/
{
"changeType": "created,updated,deleted",
"notificationUrl": "https://webhook.azurewebsites.net/api/send/myNotifyClient",
"resource": "users('1273a016-201d-4f95-8083-1b7f99b3edeb')/events",
"expirationDateTime": "2022-05-05T14:58:56.7951795+00:00",
"clientState": "ClientSecret",
"includeResourceData": false
}
当应用收到有关订阅会议事件的通知时,它会在通知中查找日历事件 ID。 使用事件 ID 获取检索特定聊天 ID 和订阅其消息的 JoinWebUrl
。 应用订阅聊天消息后,请按照为 租户级通知 提供的步骤获取会议 ID 和组织者 ID。
若要从用户级通知中获取会议 ID 和组织者 ID,请执行以下操作:
获取事件 ID:应用从通知有效负载获取
eventId
属性。示例:通知有效负载
{ "subscriptionId": "ef30cdc6-b5ae-4702-b924-f458fd9e5fc3", "changeType": "created", "tenantId": "2432b57b-0abd-43db-aa7b-16eadd115d34", "clientState": "ClientSecret", "subscriptionExpirationDateTime": "2022-05-05T07:54:53.1886542-07:00", "resource": "Users/1273a016-201d-4f95-8083-1b7f99b3edeb/Events/AAMkADY0NjM1MjRhLTNiNjAtNDBiOC1hYTQxLThkMjAxN2QzMjZhYQBGAAAAAAC03Gz8aL_JQp2Kxvw5a29SBwDFFWHjtoMRTqdrVyQ1h8yLAAAAAAENAADFFWHjtoMRTqdrVyQ1h8yLAAFwC7nAAAA=", "resourceData": {} }
在此示例中,
resource
中包含的eventID
为 AAMkADY0NjM1MjRhLTNiNjAtNDBiOC1hYTQxLThkMjAxN2QzMjZhYQBGAAAAAAC03Gz8aL_JQp2Kxvw5a29SBwDFFWHjtoMRTqdrVyQ1h8yLAAAAAAENAADFFWHjtoMRTqdrVyQ1h8yLAAFwC7nAAAA=。获取会议 URL:使用事件 ID 检索包含会议 URL 的
joinUrl
。有关详细信息,请参阅 get event。
使用以下示例请求会议 URL:
GET https://graph.microsoft.com/v1.0/users/1273a016-201d-4f95-8083-1b7f99b3edeb/events/AAMkADY0NjM1MjRhLTNiNjAtNDBiOC1hYTQxLThkMjAxN2QzMjZhYQBGAAAAAAC03Gz8aL_JQp2Kxvw5a29SBwDFFWHjtoMRTqdrVyQ1h8yLAAAAAAENAADFFWHjtoMRTqdrVyQ1h8yLAAFwC7nAAAA=
响应有效负载包含
joinURL
。示例:用于获取会议 URL 的响应有效负载
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('1273a016-201d-4f95-8083-1b7f99b3edeb')/events/$entity", "@odata.etag": "W/\"xRVh47aDEU6na1ckNYfMiwABb2Twsg==\"", "id": "AAMkADY0NjM1MjRhLTNiNjAtNDBiOC1hYTQxLThkMjAxN2QzMjZhYQBGAAAAAAC03Gz8aL_JQp2Kxvw5a29SBwDFFWHjtoMRTqdrVyQ1h8yLAAAAAAENAADFFWHjtoMRTqdrVyQ1h8yLAAFwC7nAAAA=", "start": { "dateTime": "2022-05-06T15:00:00.0000000", "timeZone": "UTC" }, "end": { "dateTime": "2022-05-06T15:30:00.0000000", "timeZone": "UTC" }, "onlineMeeting": { "joinUrl": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_MjExYzJiMTItZDY1MS00ZGZkLWE5YzQtZTBmNWI1MDg2M2Uw%40thread.v2/0?context=%7b%22Tid%22%3a%222432b57b-0abd-43db-aa7b-16eadd115d34%22%2c%22Oid%22%3a%221273a016-201d-4f95-8083-1b7f99b3edeb%22%7d", "conferenceId": "438824583", "tollNumber": "+1 213-279-1007" } }
会议 URL 包含在
joinUrl
中。获取聊天线程 ID:使用在
joinUrl
中获取的会议 URL 获取聊天线程 ID。 在提取相关会议时,将此会议 URL 指定为joinWebUrl
参数的值。使用以下示例请求线程 ID:
GET https://graph.microsoft.com/v1.0/users('14b779ae-cb64-47e7-a512-52fd50a4154d')/onlineMeetings?$filter=JoinWebUrl%20eq%20'https://teams.microsoft.com/l/meetup-join/19%3ameeting_MTM5OTY3MGUtNmY4Mi00Yjg4LTk2MDUtY2IyZGRlNmU1ZjA2%40thread.v2/0?context=%7b%22Tid%22%3a%222432b57b-0abd-43db-aa7b-16eadd115d34%22%2c%22Oid%22%3a%2214b779ae-cb64-47e7-a512-52fd50a4154d%22%7d'
响应有效负载包含
chatInfo
属性中的threadID
成员。示例:具有线程 ID 的响应有效负载
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('14b779ae-cb64-47e7-a512-52fd50a4154d')/onlineMeetings", "value": [ { "id": "MSoxNGI3NzlhZS1jYjY0LTQ3ZTctYTUxMi01MmZkNTBhNDE1NGQqMCoqMTk6bWVldGluZ19NVE01T1RZM01HVXRObVk0TWkwMFlqZzRMVGsyTURVdFkySXlaR1JsTm1VMVpqQTJAdGhyZWFkLnYy", "creationDateTime": "2022-04-26T07:41:17.3736455Z", "startDateTime": "2022-04-26T10:30:00Z", "endDateTime": "2022-04-26T11:00:00Z", "joinUrl": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_MTM5OTY3MGUtNmY4Mi00Yjg4LTk2MDUtY2IyZGRlNmU1ZjA2%40thread.v2/0?context=%7b%22Tid%22%3a%222432b57b-0abd-43db-aa7b-16eadd115d34%22%2c%22Oid%22%3a%2214b779ae-cb64-47e7-a512-52fd50a4154d%22%7d", "joinWebUrl": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_MTM5OTY3MGUtNmY4Mi00Yjg4LTk2MDUtY2IyZGRlNmU1ZjA2%40thread.v2/0?context=%7b%22Tid%22%3a%222432b57b-0abd-43db-aa7b-16eadd115d34%22%2c%22Oid%22%3a%2214b779ae-cb64-47e7-a512-52fd50a4154d%22%7d", "chatInfo": { "threadId": "19:meeting_MTM5OTY3MGUtNmY4Mi00Yjg4LTk2MDUtY2IyZGRlNmU1ZjA2@thread.v2", "messageId": "0", "replyChainMessageId": null } } ] }
聊天 ID 包含在
threadId
中。订阅聊天消息:使用聊天 ID 订阅应用以接收该特定会议的聊天消息。 有关详细信息,请参阅 在聊天中订阅消息。
如果希望应用订阅包含特定文本的消息,请参阅 在包含特定文本的聊天中订阅消息。
按照 租户级通知的 步骤获取会议 ID 和组织者 ID。
使用租户级通知获取会议详细信息
如果你的应用有权访问整个租户中的所有会议脚本和录制内容,则租户级通知非常有用。 订阅你的应用,以便在听录和录制开始时收到事件通知,或者在安排的联机 Teams 会议通话结束时收到通知。 会议结束后,你的应用可以访问和检索会议脚本和录制内容。
若要将应用订阅到租户级通知,请参阅 获取更改通知。
当应用收到有关已订阅会议事件的通知时,它会在通知中搜索以下内容:
- 听录启动事件。
- 会议结束事件。
这些事件包含聊天 ID(用于获取聊天实体)以及最终的会议 ID 和组织者 ID。
若要从租户级通知中获取会议 ID 和组织者 ID,请执行以下操作:
获取聊天 ID:应用从通知中获取
chatId
属性以进行后续调用。 应用可以从以下负载获取聊天 ID:听录已启动事件:
callTranscriptEventMessageDetail
事件类型示例:听录启动事件的有效负载
{ "subscriptionId": "1217470f-564c-4fe3-b51f-ebd962cb8797", "changeType": "created", "tenantId": "2432b57b-0abd-43db-aa7b-16eadd115d34", "resource": "chats('19:meeting_ZjVkMjc0ZWYtNThkMy00ZGI1LWFiYjAtYjg3ZGU0ZWI3MzZk@thread.v2')/messages('1649787549174')", "contentDecryptedBySimulator": { "@odata.context": "https://graph.microsoft.com/$metadata#chats('19%3Ameeting_ZjVkMjc0ZWYtNThkMy00ZGI1LWFiYjAtYjg3ZGU0ZWI3MzZk%40thread.v2')/messages/$entity", "messageType": "systemEventMessage", "createdDateTime": "2022-04-12T18:19:09.174Z", "lastModifiedDateTime": "2022-04-12T18:19:09.174Z", "chatId": "19:meeting_ZjVkMjc0ZWYtNThkMy00ZGI1LWFiYjAtYjg3ZGU0ZWI3MzZk@thread.v2", "body": { "contentType": "html", "content": "<systemEventMessage/>" }, "channelIdentity": null, "eventDetail": { "@odata.type": "#Microsoft.Teams.GraphSvc.callTranscriptEventMessageDetail", "callId": "16481de8-3262-419b-abc7-0139e6239515", "callTranscriptICalUid": "", "meetingOrganizer": { "application": null, "device": null, "user": { "userIdentityType": "aadUser", "id": "14b779ae-cb64-47e7-a512-52fd50a4154d", "displayName": null } } } }, "encryptedContent": {} }
调用结束事件:
callEndedEventMessageDetail
事件类型示例:调用结束事件的有效负载
{ "subscriptionId": "1217470f-564c-4fe3-b51f-ebd962cb8797", "changeType": "created", "tenantId": "2432b57b-0abd-43db-aa7b-16eadd115d34", "resource": "chats('19:meeting_ZjVkMjc0ZWYtNThkMy00ZGI1LWFiYjAtYjg3ZGU0ZWI3MzZk@thread.v2')/messages('1649787585457')", "resourceData": {}, "contentDecryptedBySimulator": { "@odata.context": "https://graph.microsoft.com/$metadata#chats('19%3Ameeting_ZjVkMjc0ZWYtNThkMy00ZGI1LWFiYjAtYjg3ZGU0ZWI3MzZk%40thread.v2')/messages/$entity", "createdDateTime": "2022-04-12T18:19:45.457Z", "lastModifiedDateTime": "2022-04-12T18:19:45.457Z", "chatId": "19:meeting_ZjVkMjc0ZWYtNThkMy00ZGI1LWFiYjAtYjg3ZGU0ZWI3MzZk@thread.v2", "eventDetail": { "@odata.type": "#Microsoft.Teams.GraphSvc.callEndedEventMessageDetail", "callId": null, "callDuration": "PT1M44S", "callEventType": "meeting", "callParticipants": [ ], "initiator": { } } }, "encryptedContent": { } }
获取聊天实体:应用可以使用步骤 1 中获取的聊天 ID 检索聊天实体。 使用聊天实体获取加入呼叫的 URL。
onlineMeetingInfo
属性的joinWebUrl
成员包含此 URL,并用于最终获取会议 ID。 组织者 ID 也是响应有效负载的一部分。有关聊天实体的详细信息,请参阅 获取聊天。
使用以下示例基于聊天 ID 请求聊天实体:
GET https://graph.microsoft.com/v1.0/chats/19:meeting_NmU0NTkxYzMtM2Y2My00NzRlLWFmN2YtNTFiMGM5OWM3ZjY2@thread.v2
响应有效负载包含以下元素:
组织者 ID:它包含在响应有效负载中
organizer
属性的id
成员中。会议呼叫的 URL:此 URL 用于检索会议 ID,在以下两种方案之一的响应有效负载中可用:
- 如果会议是联机 Teams 会议,则
onlineMeetingInfo
属性的joinWebUrl
成员包含此 URL。 - 如果会议不是从 Teams 客户端或 Outlook 客户端创建为联机会议,则它包含
onlineMeetingInfo
属性中的calendarEventId
成员。 应用可以使用calendarEventId
获取joinUrl
,这与joinWebUrl
相同。
有关事件的详细信息,请参阅 get event。
响应有效负载方案的示例,具体取决于加入会议 URL 的类型:
提供
joinWebUrl
的联机 Teams 会议示例
:联机会议的响应有效负载
{ "@odata.context": "https://graph.microsoft.com/beta/$metadata#chats/$entity", "id": "19:meeting_NmU0NTkxYzMtM2Y2My00NzRlLWFmN2YtNTFiMGM5OWM3ZjY2@thread.v2", "topic": "Test Meet Create Online Meeting", "createdDateTime": "2022-04-14T11:30:45.903Z", "lastUpdatedDateTime": "2022-04-26T06:27:45.265Z", "chatType": "meeting", "webUrl": "https://teams.microsoft.com/l/chat/19%3Ameeting_NmU0NTkxYzMtM2Y2My00NzRlLWFmN2YtNTFiMGM5OWM3ZjY2%40thread.v2/0?tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34", "tenantId": "2432b57b-0abd-43db-aa7b-16eadd115d34", "viewpoint": null, "onlineMeetingInfo": { "calendarEventId": null, "joinWebUrl": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_NmU0NTkxYzMtM2Y2My00NzRlLWFmN2YtNTFiMGM5OWM3ZjY2%40thread.v2/0?context=%7b%22Tid%22%3a%222432b57b-0abd-43db-aa7b-16eadd115d34%22%2c%22Oid%22%3a%2214b779ae-cb64-47e7-a512-52fd50a4154d%22%7d", "organizer": { "id": "14b779ae-cb64-47e7-a512-52fd50a4154d", "displayName": null, "userIdentityType": "aadUser" } } }
通过 Teams 客户端或 Outlook 客户端安排的会议,未标记为在线会议,其中
calendarEventId
可用示例:未标记为联机的会议响应有效负载
{ "@odata.context": "https://graph.microsoft.com/beta/$metadata#chats/$entity", "id": "19:meeting_YzM1NGFiZWYtOGFiOS00NjM5LTg4OTktYmU0MjI4NTQyNGZm@thread.v2", "topic": "Non Online Meeting Teams Client", "createdDateTime": "2022-04-26T09:43:23.711Z", "lastUpdatedDateTime": "2022-04-26T09:43:46.157Z", "chatType": "meeting", "webUrl": "https://teams.microsoft.com/l/chat/19%3Ameeting_YzM1NGFiZWYtOGFiOS00NjM5LTg4OTktYmU0MjI4NTQyNGZm%40thread.v2/0?tenantId=2432b57b-0abd-43db-aa7b-16eadd115d34", "tenantId": "2432b57b-0abd-43db-aa7b-16eadd115d34", "viewpoint": null, "onlineMeetingInfo": { "calendarEventId": "AAMkAGE3NjJhOTVhLTNkZDQtNDE2OS05ZjU0LTJmOGQ0YTY2YTdiZQBGAAAAAAD3AG5jNnlgQJvdCL_KgXJIBwBsww5BlIxtT7iFyYWrXV3AAAAAAAENAABsww5BlIxtT7iFyYWrXV3AAACSDwYeAAA=", "joinWebUrl": null, "organizer": { "id": "14b779ae-cb64-47e7-a512-52fd50a4154d", "displayName": null, "userIdentityType": "aadUser" } } }
使用以下示例从
calendarEventId
获取joinWebUrl
:GET https://graph.microsoft.com/beta/users/14b779ae-cb64-47e7-a512-52fd50a4154d/events/AAMkAGE3NjJhOTVhLTNkZDQtNDE2OS05ZjU0LTJmOGQ0YTY2YTdiZQBGAAAAAAD3AG5jNnlgQJvdCL_KgXJIBwBsww5BlIxtT7iFyYWrXV3AAAAAAAENAABsww5BlIxtT7iFyYWrXV3AAACSDwYdAAA=
在此示例中:
- 组织者 ID 为 14b779ae-cb64-47e7-a512-52fd50a4154d。
此请求的响应有效负载包含
onlineMeeting
属性中的joinUrl
。注意
joinUrl
与joinWebUrl
相同。
示例:包含用于加入会议的 URL 的响应有效负载
{ "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('14b779ae-cb64-47e7-a512-52fd50a4154d')/events/$entity", "@odata.etag": "W/\"bMMOQZSMbU+4hcmFq11dwAAAkc3Tmw==\"", "id": "AAMkAGE3NjJhOTVhLTNkZDQtNDE2OS05ZjU0LTJmOGQ0YTY2YTdiZQBGAAAAAAD3AG5jNnlgQJvdCL_KgXJIBwBsww5BlIxtT7iFyYWrXV3AAAAAAAENAABsww5BlIxtT7iFyYWrXV3AAACSDwYdAAA=", "start": { "dateTime": "2022-04-26T10:30:00.0000000", "timeZone": "UTC" }, "end": { "dateTime": "2022-04-26T11:00:00.0000000", "timeZone": "UTC" }, "onlineMeeting": { "joinUrl": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_MTM5OTY3MGUtNmY4Mi00Yjg4LTk2MDUtY2IyZGRlNmU1ZjA2%40thread.v2/0?context=%7b%22Tid%22%3a%222432b57b-0abd-43db-aa7b-16eadd115d34%22%2c%22Oid%22%3a%2214b779ae-cb64-47e7-a512-52fd50a4154d%22%7d" }, "calendar@odata.associationLink": "https://graph.microsoft.com/beta/users('14b779ae-cb64-47e7-a512-52fd50a4154d')/calendars('AAMkAGE3NjJhOTVhLTNkZDQtNDE2OS05ZjU0LTJmOGQ0YTY2YTdiZQAuAAAAAAD3AG5jNnlgQJvdCL_KgXJIAQBsww5BlIxtT7iFyYWrXV3AAAAAAAENAAA=')/$ref", "calendar@odata.navigationLink": "https://graph.microsoft.com/beta/users('14b779ae-cb64-47e7-a512-52fd50a4154d')/calendars('AAMkAGE3NjJhOTVhLTNkZDQtNDE2OS05ZjU0LTJmOGQ0YTY2YTdiZQAuAAAAAAD3AG5jNnlgQJvdCL_KgXJIAQBsww5BlIxtT7iFyYWrXV3AAAAAAAENAAA=')" }
- 如果会议是联机 Teams 会议,则
获取会议 ID:现在,应用可以使用
joinWebUrl
获取会议 ID。使用以下示例请求联机会议 ID:
GET https://graph.microsoft.com/beta/users('14b779ae-cb64-47e7-a512-52fd50a4154d')/onlineMeetings?$filter=JoinWebUrl%20eq%20'https://teams.microsoft.com/l/meetup-join/19%3ameeting_MTM5OTY3MGUtNmY4Mi00Yjg4LTk2MDUtY2IyZGRlNmU1ZjA2%40thread.v2/0?context=%7b%22Tid%22%3a%222432b57b-0abd-43db-aa7b-16eadd115d34%22%2c%22Oid%22%3a%2214b779ae-cb64-47e7-a512-52fd50a4154d%22%7d'
响应有效负载包含
value
属性的id
成员中的会议 ID。示例:具有会议 ID 的响应有效负载
{ "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('14b779ae-cb64-47e7-a512-52fd50a4154d')/onlineMeetings", "value": [ { "id": "MSoxNGI3NzlhZS1jYjY0LTQ3ZTctYTUxMi01MmZkNTBhNDE1NGQqMCoqMTk6bWVldGluZ19NVE01T1RZM01HVXRObVk0TWkwMFlqZzRMVGsyTURVdFkySXlaR1JsTm1VMVpqQTJAdGhyZWFkLnYy", "creationDateTime": "2022-04-26T07:41:17.3736455Z", "startDateTime": "2022-04-26T10:30:00Z", "endDateTime": "2022-04-26T11:00:00Z", "joinUrl": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_MTM5OTY3MGUtNmY4Mi00Yjg4LTk2MDUtY2IyZGRlNmU1ZjA2%40thread.v2/0?context=%7b%22Tid%22%3a%222432b57b-0abd-43db-aa7b-16eadd115d34%22%2c%22Oid%22%3a%2214b779ae-cb64-47e7-a512-52fd50a4154d%22%7d", "joinWebUrl": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_MTM5OTY3MGUtNmY4Mi00Yjg4LTk2MDUtY2IyZGRlNmU1ZjA2%40thread.v2/0?context=%7b%22Tid%22%3a%222432b57b-0abd-43db-aa7b-16eadd115d34%22%2c%22Oid%22%3a%2214b779ae-cb64-47e7-a512-52fd50a4154d%22%7d", "chatInfo": { "threadId": "19:meeting_MTM5OTY3MGUtNmY4Mi00Yjg4LTk2MDUtY2IyZGRlNmU1ZjA2@thread.v2", "messageId": "0", "replyChainMessageId": null } } ] }
提取脚本或录制内容:在步骤 2 和 3 中获取的组织者 ID 和会议 ID 允许你的应用提取该特定会议事件的脚本或录制内容。
若要提取脚本,需要:
根据组织者 ID 和会议 ID 检索脚本 ID:
使用以下示例请求脚本 ID:
GET https://graph.microsoft.com/beta/users('14b779ae-cb64-47e7-a512-52fd50a4154d')/onlineMeetings('MSoxNGI3NzlhZS1jYjY0LTQ3ZTctYTUxMi01MmZkNTBhNDE1NGQqMCoqMTk6bWVldGluZ19ObVUwTlRreFl6TXRNMlkyTXkwME56UmxMV0ZtTjJZdE5URmlNR001T1dNM1pqWTJAdGhyZWFkLnYy')/transcripts
在此示例中:
- 会议 ID 包含为
onlineMeetings
的值:MSoxNGI3NzlhZS1jYjY0LTQ3ZTctYTUxMi01MmZkNTBhNDE1NGQqMCoqMTk6bW VldGluZ1 9ObVUwTlRreFl6TXRNMlkyTXkwME56UmxMV0ZtTjZdE5URmlNR001T1dNM 1pqWTJAdGhyZWFkLnYy。 - 组织者 ID 为 14b779ae-cb64-47e7-a512-52fd50a4154d。
响应有效负载在
value
属性的id
成员中包含会议 ID 和组织者 ID 的脚本 ID。示例:用于获取脚本 ID 的响应有效负载
{ "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('14b779ae-cb64-47e7-a512-52fd50a4154d')/onlineMeetings('MSoxNGI3NzlhZS1jYjY0LTQ3ZTctYTUxMi01MmZkNTBhNDE1NGQqMCoqMTk6bWVldGluZ19ObVUwTlRreFl6TXRNMlkyTXkwME56UmxMV0ZtTjJZdE5URmlNR001T1dNM1pqWTJAdGhyZWFkLnYy')/transcripts", "@odata.count": 1, "value": [ { "id": "MSMjMCMjMDEyNjJmNjgtOTc2Zi00MzIxLTlhNDQtYThmMmY4ZjQ1ZjVh", "createdDateTime": "2022-04-14T11:34:39.5662792Z" } ] }
在此示例中,脚本 ID 为 MSMjMCMjMDEyNjmNjgtOTc2Zi00MzIxLTlhNDQtYThmMmY4ZjQ1ZjVh。
- 会议 ID 包含为
根据脚本 ID 访问和获取会议脚本:
使用以下示例以
.vtt
格式请求特定会议的脚本:GET https://graph.microsoft.com/beta/users('14b779ae-cb64-47e7-a512-52fd50a4154d')/onlineMeetings('MSoxNGI3NzlhZS1jYjY0LTQ3ZTctYTUxMi01MmZkNTBhNDE1NGQqMCoqMTk6bWVldGluZ19ObVUwTlRreFl6TXRNMlkyTXkwME56UmxMV0ZtTjJZdE5URmlNR001T1dNM1pqWTJAdGhyZWFkLnYy')/transcripts('MSMjMCMjMDEyNjJmNjgtOTc2Zi00MzIxLTlhNDQtYThmMmY4ZjQ1ZjVh')/content?$format=text/vtt
响应有效负载将包含格式的
.vtt
脚本。
若要提取录制内容,需要:
根据组织者 ID 和会议 ID 检索录制 ID:
使用以下示例请求录制 ID:
GET https://graph.microsoft.com/beta/users/b935e675-5e67-48b9-8d45-249d5f88e964/onlineMeetings/MSpiOTM1ZTY3NS01ZTY3LTQ4YjktOGQ0NS0yNDlkNWY4OGU5NjQqMCoqMTk6bWVldGluZ19ZbU0zTnpJNU9USXRZakU0WlMwME1tUTNMVGt6TVRRdFkyWm1PRGRtWmpsaVptRTNAdGhyZWFkLnYy/recordings/
在此示例中:
- 会议 ID 包含为
onlineMeetings
: MSpiOTM1ZTY3NS01ZTY3LTQ4YjktOGQ0NS0yNDlkNWY4OGU5NjQqMCoqMTk6bWVl dGluZ19ZbU0zTnpJNU9USXRZakU0WlMwME1tUTNMVGt6TVRRdFkyWm1 PRGRtWmpsaVptRTNAdGhyZWFkLnYy。 - 组织者 ID 为 b935e675-5e67-48b9-8d45-249d5f88e964。
响应有效负载包含 属性成员中的
id
会议 ID 和组织者 ID 的value
录制 ID。示例:用于获取录制 ID 的响应有效负载
{ "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('b935e675-5e67-48b9-8d45-249d5f88e964')/onlineMeetings('MSpiOTM1ZTY3NS01ZTY3LTQ4YjktOGQ0NS0yNDlkNWY4OGU5NjQqMCoqMTk6bWVldGluZ19ZbU0zTnpJNU9USXRZakU0WlMwME1tUTNMVGt6TVRRdFkyWm1PRGRtWmpsaVptRTNAdGhyZWFkLnYy')/recordings", "@odata.count": 1, "value": [ { "id": "7e31db25-bc6e-4fd8-96c7-e01264e9b6fc", "createdDateTime": "2023-04-10T08:13:17.5990966Z" } ] }
在此示例中,记录 ID 为 7e31db25-bc6e-4fd8-96c7-e01264e9b6fc。
- 会议 ID 包含为
根据录制 ID 访问和获取会议录制:
使用以下示例以 格式请求特定会议的
.mp4
录制内容:GET https://graph.microsoft.com/beta/users/b935e675-5e67-48b9-8d45-249d5f88e964/onlineMeetings/MSpiOTM1ZTY3NS01ZTY3LTQ4YjktOGQ0NS0yNDlkNWY4OGU5NjQqMCoqMTk6bWVldGluZ19ZbU0zTnpJNU9USXRZakU0WlMwME1tUTNMVGt6TVRRdFkyWm1PRGRtWmpsaVptRTNAdGhyZWFkLnYy/recordings/7e31db25-bc6e-4fd8-96c7-e01264e9b6fc/content?$format=video/mp4
响应有效负载将包含格式的
.mp4
录制内容。
使用 Bot Framework 获取会议 ID 和组织者 ID
应用可以使用 Bot Framework 获取会议 ID 和组织者 ID。 机器人可以从所有计划的联机会议自动接收会议开始或结束的事件。
使用以下示例使用机器人应用获取会议 ID 和组织者 ID:
GET /v1/meetings/{meetingId}
响应有效负载包含:
details
属性msGraphResourceId
成员中的会议 ID。organizer
属性id
成员中的组织者 ID。
示例:用于获取会议详细信息的响应有效负载
{
details: {
id: "MCMxOTptZWV0aW5nX05XTTFNVEk1TnpNdE5qZ3pNeTAwWVdRNExUaG1PV1F0WlRnM01UQm1PVGczWW1VekB0aHJlYWQudjIjMA==",
msGraphResourceId: "MSo2NzAyYWZiNi0xMDliLTRjMzItYTE0MS02ZTY1NDY5NTAyYjkqMCoqMTk6bWVldGluZ19OV00xTVRJNU56TXROamd6TXkwMFlXUTRMVGhtT1dRdFpUZzNNVEJtT1RnM1ltVXpAdGhyZWFkLnYy",
scheduledStartTime: {
},
scheduledEndTime: {
},
joinUrl: "https://teams.microsoft.com/l/meetup-join/19%3ameeting_NWM1MTI5NzMtNjgzMy00YWQ4LThmOWQtZTg3MTBmOTg3YmUz%40thread.v2/0?context=%7b%22Tid%22%3a%22b3cdf1c8-024a-49e2-a994-f67f830b02f3%22%2c%22Oid%22%3a%226702afb6-109b-4c32-a141-6e65469502b9%22%7d",
title: "Testing meeting bot 1 - Hun",
type: "Scheduled",
},
conversation: {
id: "19:meeting_NWM1MTI5NzMtNjgzMy00YWQ4LThmOWQtZTg3MTBmOTg3YmUz@thread.v2",
isGroup: true,
conversationType: "groupChat",
},
organizer: {
id: "29:1VZkVr77S3GW_RdAXKrfgFeytpqMegL3tkKvEbwrPqoCVvmqrlKtVrfKWUY7xIM-bZIx4Sq-p1MjdjSZnb5W20w",
tenantId: "b3cdf1c8-024a-49e2-a994-f67f830b02f3",
aadObjectId: "6702afb6-109b-4c32-a141-6e65469502b9",
},
}
在此示例中:
- 会议 ID 包含为
msGraphResourceId
的值:MSo2NzAyYWZiNi0xMDliLTRjMzItYTE0MS02ZTY1NDY5NTAyYjkqMCoqMTk6bWVl dGluZ19OV00xTVRJNU56TXROamd6TXkwMFlXUTRMVGhtT1dRdFpUZzNNVEJt1RnM 1ltVXpAdGhyZWFkLnYy。
- 组织者 ID 包含为 :6702afb6-109b-4c32-a141-6e65469502b9 的值
aadObjectId
organizer
。
应用获取会议 ID 和组织者 ID 后,会触发 Graph API 使用这些会议详细信息提取脚本内容和录制内容。
代码示例
可以尝试机器人应用的以下代码示例:
示例名称
说明
.NET
Node.js
会议听录
这是一个示例应用程序,演示如何使用 图形 API 获取会议脚本,并将其显示在对话 (TeamsJS v1.x) 中称为任务模块。
View
View
会议脚本和录制
这是一个示例应用程序,演示如何使用图形 API获取会议脚本和录制。
View
View
后续步骤
另请参阅
:用于获取会议详细信息的响应有效负载
{
details: {
id: "MCMxOTptZWV0aW5nX05XTTFNVEk1TnpNdE5qZ3pNeTAwWVdRNExUaG1PV1F0WlRnM01UQm1PVGczWW1VekB0aHJlYWQudjIjMA==",
msGraphResourceId: "MSo2NzAyYWZiNi0xMDliLTRjMzItYTE0MS02ZTY1NDY5NTAyYjkqMCoqMTk6bWVldGluZ19OV00xTVRJNU56TXROamd6TXkwMFlXUTRMVGhtT1dRdFpUZzNNVEJtT1RnM1ltVXpAdGhyZWFkLnYy",
scheduledStartTime: {
},
scheduledEndTime: {
},
joinUrl: "https://teams.microsoft.com/l/meetup-join/19%3ameeting_NWM1MTI5NzMtNjgzMy00YWQ4LThmOWQtZTg3MTBmOTg3YmUz%40thread.v2/0?context=%7b%22Tid%22%3a%22b3cdf1c8-024a-49e2-a994-f67f830b02f3%22%2c%22Oid%22%3a%226702afb6-109b-4c32-a141-6e65469502b9%22%7d",
title: "Testing meeting bot 1 - Hun",
type: "Scheduled",
},
conversation: {
id: "19:meeting_NWM1MTI5NzMtNjgzMy00YWQ4LThmOWQtZTg3MTBmOTg3YmUz@thread.v2",
isGroup: true,
conversationType: "groupChat",
},
organizer: {
id: "29:1VZkVr77S3GW_RdAXKrfgFeytpqMegL3tkKvEbwrPqoCVvmqrlKtVrfKWUY7xIM-bZIx4Sq-p1MjdjSZnb5W20w",
tenantId: "b3cdf1c8-024a-49e2-a994-f67f830b02f3",
aadObjectId: "6702afb6-109b-4c32-a141-6e65469502b9",
},
}
在此示例中:
- 会议 ID 包含为
msGraphResourceId
的值:MSo2NzAyYWZiNi0xMDliLTRjMzItYTE0MS02ZTY1NDY5NTAyYjkqMCoqMTk6bWVl dGluZ19OV00xTVRJNU56TXROamd6TXkwMFlXUTRMVGhtT1dRdFpUZzNNVEJt1RnM 1ltVXpAdGhyZWFkLnYy。 - 组织者 ID 包含为 :6702afb6-109b-4c32-a141-6e65469502b9 的值
aadObjectId
organizer
。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈