Задайте предпочтительное состояние доступности и действий для пользователя. Если задано предпочтительное присутствие пользователя, его присутствие отображается в качестве предпочтительного состояния.
Предпочтительное присутствие вступает в силу только в том случае, если для пользователя существует хотя бы один сеанс присутствия . В противном случае присутствие пользователя отображается как Offline.
Сеанс присутствия создается в результате успешной операции setPresence или при входе пользователя в клиент Microsoft Teams.
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения
Разрешения с наименьшими привилегиями
Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись)
Presence.ReadWrite
Недоступно.
Делегированные (личная учетная запись Майкрософт)
Не поддерживается.
Не поддерживается.
Приложение
Presence.ReadWrite.All
Недоступно.
HTTP-запрос
POST /users/{userId}/presence/setUserPreferredPresence
В тексте запроса предоставьте JSON-объект с указанными ниже параметрами.
Параметр
Тип
Описание
действие
String
Дополнительные сведения о доступности.
availability
String
Базовые сведения о присутствии.
expirationDuration
Duration (Длительность)
Срок действия сеанса присутствия приложения, представленного в формате ISO 8601 в течение длительности. Если этот параметр не указан, будет применен срок действия по умолчанию:
-
DoNotDisturb или Busy: срок действия в течение 1 дня - Все остальные: срок действия за 7 дней
В следующей таблице перечислены поддерживаемые сочетания доступности и действий.
availability
действие
Описание
Доступно
Доступно
Задайте для предпочтительного присутствия пользователя значение Available.
Занята
Занята
Задайте для предпочтительного присутствия пользователя значение Busy.
DoNotDisturb
DoNotDisturb
Задайте для предпочтительного присутствия пользователя значение DoNotDisturb.
BeRightBack
BeRightBack
Задайте для предпочтительного присутствия пользователя значение BeRightBack.
Прочь
Прочь
Задайте для предпочтительного присутствия пользователя значение Away.
Автономный режим
OffWork
Задайте для предпочтительного присутствия пользователя значение Offline.
Отклик
В случае успешного выполнения этот метод возвращает код отклика 200 OK.
Примеры
Запрос
В следующем примере показан запрос, который задает предпочтительное присутствие DoNotDisturb для пользователя со сроком действия 8 часов.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Users.Item.Presence.SetUserPreferredPresence;
var requestBody = new SetUserPreferredPresencePostRequestBody
{
Availability = "DoNotDisturb",
Activity = "DoNotDisturb",
ExpirationDuration = TimeSpan.Parse("PT8H"),
};
// To initialize your graphClient, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.Users["{user-id}"].Presence.SetUserPreferredPresence.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
abstractions "github.com/microsoft/kiota-abstractions-go"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphusers "github.com/microsoftgraph/msgraph-sdk-go/users"
//other-imports
)
requestBody := graphusers.NewSetUserPreferredPresencePostRequestBody()
availability := "DoNotDisturb"
requestBody.SetAvailability(&availability)
activity := "DoNotDisturb"
requestBody.SetActivity(&activity)
expirationDuration , err := abstractions.ParseISODuration("PT8H")
requestBody.SetExpirationDuration(&expirationDuration)
// To initialize your graphClient, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
graphClient.Users().ByUserId("user-id").Presence().SetUserPreferredPresence().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.users.item.presence.setuserpreferredpresence.SetUserPreferredPresencePostRequestBody setUserPreferredPresencePostRequestBody = new com.microsoft.graph.users.item.presence.setuserpreferredpresence.SetUserPreferredPresencePostRequestBody();
setUserPreferredPresencePostRequestBody.setAvailability("DoNotDisturb");
setUserPreferredPresencePostRequestBody.setActivity("DoNotDisturb");
PeriodAndDuration expirationDuration = PeriodAndDuration.ofDuration(Duration.parse("PT8H"));
setUserPreferredPresencePostRequestBody.setExpirationDuration(expirationDuration);
graphClient.users().byUserId("{user-id}").presence().setUserPreferredPresence().post(setUserPreferredPresencePostRequestBody);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Users\Item\Presence\SetUserPreferredPresence\SetUserPreferredPresencePostRequestBody;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new SetUserPreferredPresencePostRequestBody();
$requestBody->setAvailability('DoNotDisturb');
$requestBody->setActivity('DoNotDisturb');
$requestBody->setExpirationDuration(new \DateInterval('PT8H'));
$graphServiceClient->users()->byUserId('user-id')->presence()->setUserPreferredPresence()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.users.item.presence.set_user_preferred_presence.set_user_preferred_presence_post_request_body import SetUserPreferredPresencePostRequestBody
# To initialize your graph_client, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = SetUserPreferredPresencePostRequestBody(
availability = "DoNotDisturb",
activity = "DoNotDisturb",
expiration_duration = "PT8H",
)
await graph_client.users.by_user_id('user-id').presence.set_user_preferred_presence.post(request_body)