presence: setPresence

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Задайте состояние доступности и действий в сеансе присутствия приложения для пользователя.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Сеансы присутствия

У пользователя может быть несколько сеансов присутствия, так как он может находиться в нескольких клиентах Teams (настольных, мобильных и веб-). Каждый клиент Teams имеет независимый сеанс присутствия, и присутствие пользователя является агрегированным состоянием из всех сеансов позади.

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

Ниже приведен приоритет агрегирования состояний сеанса, при этом "A > B" представляет A, имеющий приоритет над B:

  • Пользовательские состояния > на уровне сеанса (предпочитаемое пользователем состояние переопределяет состояния на уровне сеанса)
  • Среди состояний на уровне сеанса: DoNotDisturb > Busy > Available Away >

Примечание: При изменении присутствия пользователя в Microsoft Graph, так как клиент Teams использует режим опроса, обновление состояния присутствия займет несколько минут.

Время ожидания, истечение срока действия и сохранение активности

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

Время ожидания сеанса присутствия может истекло, если доступность — Available и время ожидания составляет 5 минут. Когда время ожидания истекает, состояние присутствия исчезает поэтапно. Например, если приложение задает для сеанса Available/Availableприсутствия значение , состояние изменится на Available/AvailableInactive 5 минут с первым тайм-аутом, а затем Away/Away еще через 5 минут со вторым тайм-аутом.

Срок действия сеанса присутствия можно настроить с помощью expirationDuration параметра . По истечении срока действия сеанса он становится Offline.

Разрешения

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

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) Presence.ReadWrite Недоступно.
Делегированные (личная учетная запись Майкрософт) Не поддерживается. Не поддерживается.
Приложение Presence.ReadWrite.All Недоступно.

HTTP-запрос

POST /users/{userId}/presence/setPresence

Заголовки запроса

Имя Описание
Авторизация Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.
Content-Type application/json. Обязательно.

Текст запроса

В тексте запроса предоставьте JSON-объект с указанными ниже параметрами.

Параметр Тип Описание
Sessionid string Идентификатор сеанса присутствия приложения.
availability string Базовые сведения о присутствии.
действие string Дополнительные сведения о доступности.
expirationDuration duration Истечение срока действия сеанса присутствия приложения. Значение представлено в формате ISO 8601 для длительности.

Если этот параметр не указан, будет применен срок действия по умолчанию в 5 минут.

Важно!

Укажите идентификатор приложения, как sessionId в запросе.

Поддерживаемые сочетания и availabilityactivity :

availability действие Описание
Доступно Доступно Обновления сеанс присутствия значение Доступно.
Занята InACall Обновления сеанс присутствия как Занят, InACall.
Занята InAConferenceCall Обновления сеанс присутствия значение Занято, InAConferenceCall.
Прочь Прочь Обновления сеанс присутствия как "Нет".
DoNotDisturb Представления Обновления сеанс присутствия: DoNotDisturb, Presenting.

Отклик

В случае успешного выполнения этот метод возвращает код отклика 200 OK.

Примеры

В следующем запросе отображается приложение с идентификатором 22553876-f5ab-4529-bffb-cfe50aa89f87 , который задает сеанс присутствия для пользователя fa8bf3dc-eca7-46b7-bad1-db199b62afc3.

Запрос

POST https://graph.microsoft.com/beta/users/fa8bf3dc-eca7-46b7-bad1-db199b62afc3/presence/setPresence
Content-Type: application/json

{
  "sessionId": "22553876-f5ab-4529-bffb-cfe50aa89f87",
  "availability": "Available",
  "activity": "Available",
  "expirationDuration": "PT1H"
}

Отклик

HTTP/1.1 200 OK