Поделиться через


Получение идентификатора собрания и идентификатора организатора

Приложение может получать расшифровки и записи собрания с помощью идентификатора собрания и идентификатора пользователя организатора собрания, также известного как идентификатор организатора. REST API Graph извлекают расшифровки и записи на основе идентификатора собрания и идентификатора организатора, которые передаются в качестве параметров в API.

Примечание.

Срок действия неиспользованного идентификатора для запланированных собраний может истечь через несколько дней. Его можно реактивировать путем использования URL-адреса собрания для присоединения к собранию. Дополнительные сведения о временной шкале окончания срока собрания для разных типов собраний см. в разделе Срок действия собрания.

Чтобы получить идентификатор собрания и идентификатор организатора для получения расшифровки и записи, выберите один из двух способов:

Подписка на уведомления об изменениях

Вы можете оформить подписку для приложения, чтобы получать уведомления об изменениях для запланированных собраний. Когда ваше приложение получает уведомления о событиях собраний с подпиской, оно может получать расшифровки и записи, если оно авторизовано с помощью необходимых разрешений Microsoft Entra.

Ваше приложение получает уведомление о типе собраний, на которые оно подписано:

Когда приложение получает уведомление о событиях собраний, на которые оно подписано, оно может извлечь идентификатор собрания и идентификатор организатора из сообщения уведомления. В зависимости от полученных сведений о собрании приложение может получать расшифровки и записи собрания после завершения собрания.

Получение сведений о собрании с помощью уведомления на уровне пользователя

Выберите подписку на приложение на уведомления уровня пользователя для получения расшифровок и записей события собрания конкретного пользователя. Когда для этого пользователя будет запланировано собрание, ваше приложение получит уведомление. Ваше приложение также может получать уведомления о собраниях с помощью событий календаря.

Сведения о подписке приложения на события календаря см. в разделе Уведомления об изменениях для ресурсов Outlook в Microsoft Graph.

Используйте следующий пример для подписки на уведомления на уровне пользователя:

    
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
}

Когда приложение получает уведомление о событии собраний, на которые оно подписано, оно ищет идентификатор события календаря в уведомлении. Используйте идентификатор события для получения JoinWebUrl, чтобы извлечь идентификатор определенного чата и подписаться на его сообщения. После подписки приложения на сообщения чата выполните действия, указанные для уведомлений на уровне клиента, чтобы получить идентификатор собрания и идентификатор организатора.

Чтобы получить идентификатор собрания и идентификатор организатора из уведомления на уровне пользователя:

  1. Получите идентификатор события: ваше приложение получает свойство 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": {}
    }
    

    В этом примере eventID из resource является AAMkADY0NjM1MjRhLTNiNjAtNDBiOC1hYTQxLThkMjAxN2QzMjZhYQBGAAAAAAC03Gz8aL_JQp2Kxvw5a29SBwDFFWHjtoMRTqdrVyQ1h8yLAAAAAAENAADFFWHjtoMRTqdrVyQ1h8yLAAFwC7nAAAA=.

  2. Получите URL-адрес собрания: используйте идентификатор события для получения joinUrl, содержащего URL-адрес собрания.

    Дополнительные сведения см. в разделе 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.

  3. Получите идентификатор потока чата. Используйте URL-адрес собрания, полученный в joinUrl, для извлечения идентификатора потока чата. Укажите этот URL-адрес собрания в качестве значения параметра joinWebUrl при получении соответствующего собрания.

    Используйте следующий пример для запроса идентификатора потока:

    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'
    

    Полезные данные ответа содержат элемент threadID в свойстве chatInfo.

    Пример. Полезные данные ответа с идентификатором потока
    {
        "@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
                }
            }
        ]
    }
    

    Идентификатор чата содержится в threadId.

  4. Подписка на сообщения чата. Используйте идентификатор чата, чтобы подписать ваше приложение на получение сообщений чата для конкретного собрания. Дополнительные сведения см. в статье Подписка на сообщения в чате.

    Если вы хотите, чтобы приложение подписывалось на сообщения с определенным текстом, см. статью Подписка на сообщения в чате, содержащие определенный текст.

  5. Выполните действия для уведомлений на уровне клиента, чтобы получить идентификатор собрания и идентификатор организатора.

Получение сведений о собрании с помощью уведомления на уровне клиента

Уведомления на уровне клиента полезны, если приложение имеет право на доступ ко всем расшифровкам и записям собраний в клиенте. Подпишитесь на приложение, чтобы получать уведомления о событиях, когда начинается транскрибирование и запись или заканчивается вызов для запланированных собраний Teams по сети. После окончания собрания приложение сможет получить доступ к стенограмме и записи собрания.

Сведения о подписке приложения на уведомления на уровне клиента см. в статье Получение уведомлений об изменениях.

Когда ваше приложение получает уведомления о событиях собраний, подписанных, оно выполняет поиск в уведомлениях по следующим причинам:

  • События начала транскрибирования.
  • События завершения собрания.

Эти события содержат идентификатор чата, который используется для получения сущности чата и, в конечном итоге, идентификатора собрания и идентификатора организатора.

Чтобы получить идентификатор собрания и идентификатор организатора из уведомления на уровне клиента:

  1. Получение идентификатора чата: ваше приложение получает свойство chatId из уведомления для последующих вызовов. Ваше приложение может получить идентификатор чата из следующих полезных данных:

    • Событие начала транскрибирования: 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": {
      
          }
      }
      
  2. Получение сущности чата: ваше приложение может извлечь сущность чата, используя идентификатор чата, полученный на шаге 1. Используйте сущность чата, чтобы получить URL-адрес для присоединения к вызову. Элемент joinWebUrl свойства onlineMeetingInfo содержит этот URL-адрес и, в конечном итоге, используется для получения идентификатора собрания. Идентификатор организатора также является частью полезных данных ответа.

    Дополнительные сведения о сущности чата см. в разделе Получение чата.

    Используйте следующий пример для запроса сущности чата на основе идентификатора чата:

    GET https://graph.microsoft.com/v1.0/chats/19:meeting_NmU0NTkxYzMtM2Y2My00NzRlLWFmN2YtNTFiMGM5OWM3ZjY2@thread.v2
    

    Полезные данные ответа содержат следующие элементы:

    • Идентификатор организатора: он содержится в элементеid свойства organizer в полезных данных ответа.

    • URL-адрес для собрания: этот URL-адрес используется для получения идентификатора собрания и доступен в полезных данных ответа в одном из двух сценариев:

      • Если собрание является онлайн-собранием Teams, элементjoinWebUrl свойства onlineMeetingInfo содержит этот URL-адрес.
      • Если собрание не было создано как онлайн-собрание из клиента Teams или Outlook, оно содержит элемент calendarEventId в свойстве onlineMeetingInfo. Приложение может использовать calendarEventId для полученияjoinUrl, что аналогично joinWebUrl.

      Дополнительные сведения о событиях см. в разделе get event.

      Примеры сценариев полезных данных ответа в зависимости от типа URL-адреса для присоединения к собранию:

      • Онлайн-собрание Teams, где доступен joinWebUrl

        Пример
        . Полезные данные ответа для собрания по сети
        {
            "@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"
                }
            }
        }
        
        • Используйте следующий пример, чтобы получить joinWebUrl из calendarEventId:

            GET https://graph.microsoft.com/beta/users/14b779ae-cb64-47e7-a512-52fd50a4154d/events/AAMkAGE3NjJhOTVhLTNkZDQtNDE2OS05ZjU0LTJmOGQ0YTY2YTdiZQBGAAAAAAD3AG5jNnlgQJvdCL_KgXJIBwBsww5BlIxtT7iFyYWrXV3AAAAAAAENAABsww5BlIxtT7iFyYWrXV3AAACSDwYdAAA=
          

          В этом примере:

          • Идентификатор организатора — 14b779ae-cb64-47e7-a512-52fd50a4154d.

          Полезные данные ответа этого запроса содержат joinUrl в свойстве onlineMeeting.

          Примечание.

          Элемент 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=')"
            }
          
  3. Получение идентификатора собрания. Теперь ваше приложение может использовать joinWebUrl для получения идентификатора собрания.

    Используйте следующий пример для запроса идентификатора онлайн-собрания:

    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'
    

    Полезные данные ответа содержат идентификатор собрания в элементе id свойства value.

    Пример. Полезные данные ответа с идентификатором собрания
    {
        "@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
                }
            }
        ]
    }
    
  4. Получение расшифровки или записи. Идентификатор организатора и идентификатор собрания, полученные на шагах 2 и 3, позволяют приложению получать расшифровки или записи для этого конкретного события собрания.

    • Чтобы получить расшифровку, необходимо:

      1. Извлечь идентификатор расшифровки на основе идентификатора организатора и идентификатора собрания:

        Используйте следующий пример для запроса идентификатора расшифровки:

        GET https://graph.microsoft.com/beta/users('14b779ae-cb64-47e7-a512-52fd50a4154d')/onlineMeetings('MSoxNGI3NzlhZS1jYjY0LTQ3ZTctYTUxMi01MmZkNTBhNDE1NGQqMCoqMTk6bWVldGluZ19ObVUwTlRreFl6TXRNMlkyTXkwME56UmxMV0ZtTjJZdE5URmlNR001T1dNM1pqWTJAdGhyZWFkLnYy')/transcripts
        

        В этом примере:

        • Идентификатор собрания включен в качестве значения для onlineMeetings: MSoxNGI3NzlhZS1jYjY0LTQ3ZTctYTUxMi01MmZkNTBhNDE1NGQqMCoqMTk6bW VldGluZ19ObVUwTlRreFl6TXRNMlkyTXkwME56UmxMV0ZtTjJZdE5URmlNR001T1dNM 1pqWTJAdGhyZWFkLnYy.
        • Идентификатор организатора — 14b779ae-cb64-47e7-a512-52fd50a4154d.

        Полезные данные ответа содержат идентификатор расшифровки для идентификатора собрания и идентификатора организатора в элементе id свойства value.

        Пример. Полезные данные ответа для получения идентификатора расшифровки
        {
        "@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"
            }
        ]
        }
        

        В этом примере идентификатором расшифровки является MSMjMCMJMDEyNjjmNjgtOTc2Zi00MzIxLTlhNDQtYThmMmY4ZjQ1ZjVh.

      2. Доступ к расшифровке собрания и ее извлечение на основе идентификатора расшифровки:

        Используйте следующий пример, чтобы запросить расшифровки для конкретного собрания в формате .vtt:

         GET https://graph.microsoft.com/beta/users('14b779ae-cb64-47e7-a512-52fd50a4154d')/onlineMeetings('MSoxNGI3NzlhZS1jYjY0LTQ3ZTctYTUxMi01MmZkNTBhNDE1NGQqMCoqMTk6bWVldGluZ19ObVUwTlRreFl6TXRNMlkyTXkwME56UmxMV0ZtTjJZdE5URmlNR001T1dNM1pqWTJAdGhyZWFkLnYy')/transcripts('MSMjMCMjMDEyNjJmNjgtOTc2Zi00MzIxLTlhNDQtYThmMmY4ZjQ1ZjVh')/content?$format=text/vtt
        

        Полезные данные ответа содержат расшифровки в .vtt формате .

    • Чтобы получить записи, вам потребуется:

      1. Получите идентификатор записи на основе идентификатора организатора и идентификатора собрания:

        Используйте следующий пример, чтобы запросить идентификатор записи:

        GET  https://graph.microsoft.com/beta/users/b935e675-5e67-48b9-8d45-249d5f88e964/onlineMeetings/MSpiOTM1ZTY3NS01ZTY3LTQ4YjktOGQ0NS0yNDlkNWY4OGU5NjQqMCoqMTk6bWVldGluZ19ZbU0zTnpJNU9USXRZakU0WlMwME1tUTNMVGt6TVRRdFkyWm1PRGRtWmpsaVptRTNAdGhyZWFkLnYy/recordings/
        

        В этом примере:

        • Идентификатор собрания включается в качестве значения для onlineMeetings: MSpiOTM1ZTY3NS01ZTY3LTQ4YjktOGQ0NS0yNDlkNWY4OGU5NjQqMCoqMK6bWVl dGluZ19ZbU0zTnpJNU9USXRZakU0WlMwME1tUTNMVGt6TVRRdFkyWm1 PRGRtWmpsaVptRTNAdGhyZWFkLnYy.
        • Идентификатор организатора — b935e675-5e67-48b9-8d45-249d5f88e964.

        Полезные данные ответа содержат идентификатор записи для идентификатора собрания и идентификатора организатора id в члене value свойства .

        Пример. Полезные данные ответа для получения идентификатора записи
        {
        "@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"
            }
        ]
        }
        

        В этом примере идентификатор записи — 7e31db25-bc6e-4fd8-96c7-e01264e9b6fc.

      2. Доступ и получение записи собрания на основе идентификатора записи:

        Используйте следующий пример, чтобы запросить записи для определенного собрания в .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 для получения идентификатора собрания и идентификатора организатора

Ваше приложение может использовать Bot Framework для получения идентификатора собрания и идентификатора организатора. Бот может автоматически получать события начала или окончания собрания из всех запланированных онлайн-собраний.

Используйте следующий пример, чтобы получить идентификатор собрания и идентификатор организатора с помощью приложения-бота:

GET /v1/meetings/{meetingId}

Полезные данные ответа содержат:

  • Идентификатор собрания в элементе msGraphResourceId свойства details.
  • Идентификатор организатора в элементе id свойства organizer.
Пример
. Полезные данные ответа для получения сведений о собрании
{
  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",
  },
}

В этом примере:

  • Идентификатор собрания включен в качестве значения для msGraphResourceId: MSo2NzAyYWZiNi0xMDliLTRjMzItYTE0MS02ZTY1NDY5NTAyYjkqMCoqMTk6bWVl dGluZ19OV00xTVRJNU56TXROamd6TXkwMFlXUTRMVGhtT1dRdFpUZzNNVEJtT1RnM 1ltVXpAdGhyZWFkLnYy.
  • Идентификатор организатора содержится в качестве значения для aadObjectIdorganizer: 6702afb6-109b-4c32-a141-6e65469502b9.

После того как приложение получит идентификатор собрания и идентификатор организатора, оно активирует API Graph для получения содержимого расшифровки и записи с использованием этих сведений о собрании.

Примеры кода

Вы можете попробовать следующий пример кода для приложения-бота:

Название примера Описание .NET Node.js
Транскрибирование собраний Это пример приложения, в котором показано, как получить расшифровку собрания с помощью API Graph и отобразить его в диалоговом окне (в TeamsJS версии 1.x он называется модулем задач). Просмотр Просмотр
Расшифровка и запись собрания Это пример приложения, в котором показано, как получить расшифровку и запись собрания с помощью API Graph. Просмотр Просмотр
Вкладка Запись собрания и расшифровка с автоматической записью В этом примере кода показано, как создать и настроить приложение для собраний для автоматической записи и автоматической транскрибирования. Просмотр -

Следующий этап

См. также