Получение уведомлений об изменениях для обновлений присутствия в Microsoft Teams
Уведомления об изменениях в Microsoft Graph позволяют подписаться на изменения в сведениях о присутствии пользователей в Microsoft Teams. Уведомления об изменениях предоставляют альтернативу опросу о присутствии с помощью API get presence и POST getPresencesByUserId .
Используйте веб-перехватчики, чтобы подписаться на сведения о присутствии пользователей и получать уведомления об изменениях. Общие сведения о веб-перехватчиках см. в разделе Уведомления об изменениях microsoft API Graph.
Разрешения
Тип разрешения | Разрешения (в порядке повышения привилегий) | Поддерживаемые версии |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | Presence.Read.All. | Версия 1, бета-версия. |
Делегированные (личная учетная запись Майкрософт) | Не поддерживается. | Не поддерживается. |
Для приложений | Не поддерживается. | Не поддерживается. |
Поддерживаемые ресурсы для присутствия
Максимальный срок действия подписок составляет час. Подписку можно продлить с помощью API обновления подписки до истечения срока ее действия или создать новую подписку для того же ресурса после истечения срока действия. Подписки присутствия поддерживают уведомления с данными ресурсов, позволяя доставлять более подробные сведения вместе с уведомлениями об изменениях. Дополнительные сведения см. в разделе Настройка уведомлений об изменениях с использованием данных ресурсов.
В следующей таблице перечислены типы изменений присутствия, на которые можно подписаться. Дополнительные сведения см. в разделе Создание подписки.
Тип подписки присутствия | URL-адрес ресурса | Поддерживаемые типы изменений |
---|---|---|
Изменения присутствия одного пользователя | communications/presences/{id} |
Обновлено |
Массовое изменение присутствия пользователей (не более 650 идентификаторов пользователей) | communications/presences?$filter=id in ('{id}', '{id}', ...) |
Обновлено |
Подписка на изменения присутствия
Чтобы подписаться на изменения присутствия, можно задать ресурсу в полезных данных communications/presences/{id}
подписки, где поле {id} должно быть заменено идентификатором GUID присутствия пользователя. Эта подписка отправляет уведомления об изменениях при изменении присутствия пользователя.
Пример. Полезные данные подписки присутствия одного пользователя
{
"changeType": "updated",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "communications/presences/{id}",
"expirationDateTime": "2023-09-14T10:00:00.0000000Z",
"includeResourceData": true,
"encryptionCertificate": "{encryption certificate}",
"encryptionCertificateId": "{certificate id}",
"clientState": "{secret client state}"
}
Подписка на присутствие нескольких пользователей
Массовые подписки для присутствия пользователей можно создать, задав для ресурса подписки значение /communications/presences?$filter=id in ('{id}', '{id}',...)
, где {id} представляет идентификатор guid пользователей. В одной подписке можно подписаться не более 650 пользователей. Изменения присутствия для идентификаторов пользователей создают уведомление.
Пример. Полезные данные подписки присутствия нескольких пользователей
{
"changeType": "updated",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "/communications/presences?$filter=id in ('{id}', '{id}',...)",
"expirationDateTime": "2023-09-14T10:00:00.0000000Z",
"includeResourceData": true,
"encryptionCertificate": "{encryption certificate}",
"encryptionCertificateId": "{certificate id}",
"clientState": "{secret client state}"
}
Получение уведомлений о событиях присутствия
Уведомления об изменениях для событий присутствия активируются при внесении изменений в доступность и действия пользователя.
Пример. Базовые уведомления о присутствии
{
"value": [{
"subscriptionId": "{Subscription id}",
"clientState": "{secret client state}",
"changeType": "updated",
"tenantId": "{Organization/Tenant id}",
"resource": "communications/presences/{id}",
"subscriptionExpirationDateTime": "2023-09-14T10:00:00.0000000Z",
"resourceData": {
"@odata.id": "users/{User Id}/presence",
"@odata.type": "#microsoft.graph.presence",
"id": "{User Id}"
},
"organizationId": "{Organization/Tenant id}",
}]
}
Пример. Уведомления о присутствии с данными ресурсов
Уведомления о присутствии с данными ресурса имеют следующие дополнительные свойства, зашифрованные в полезных данных:
- Доступность или базовая информация о присутствии (доступно, вдали, занято)
- Действие или информация, дополняющая доступность (на собрании, в вызове)
[Примечание]. Доступность и действие могут быть одинаковыми.
Дополнительные сведения о возможных сочетаниях доступности и действий см. в разделе Свойства присутствия.
{
"value": [{
"subscriptionId": "{Subscription id}",
"clientState": "{secret client state}",
"changeType": "updated",
"tenantId": "{Organization/Tenant id}",
"resource": "communications/presences/{id}",
"subscriptionExpirationDateTime": "2023-09-14T10:00:00.0000000Z",
"resourceData": {
"@odata.id": "users/{User Id}/presence",
"@odata.type": "#microsoft.graph.presence",
"id": "{User Id}"
},
"organizationId": "{Organization/Tenant id}",
"encryptedContent": {
"data": "{Encrypted content}",
"dataSignature": "{Encrypted data signature}",
"dataKey": "{Encrypted data key for encrypting content}",
"encryptionCertificateId": "{User specified id of encryption certificate}",
"encryptionCertificateThumbprint": "{Encrpytion certification thumbprint}"
}
}],
"validationTokens": ["{Validation Tokens}"]
}
Пример. Расшифрованные уведомления с данными ресурса
{
"@odata.id": "users/{User Id}/presence",
"@odata.type": "#microsoft.graph.presence",
"id": "{User Id}",
"availability": "{Availability}",
"activity": "{Activity}"
}
Связанные материалы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по