Defina a disponibilidade e a atividade preferidas status para um usuário. Se a presença preferencial de um usuário for definida, a presença do usuário será mostrada como a status preferencial.
A presença preferencial só entra em vigor quando há pelo menos uma sessão de presença para o usuário. Caso contrário, a presença do usuário será mostrada como Offline.
Uma sessão de presença é criada como resultado de uma operação setPresence bem-sucedida ou se o usuário estiver conectado a um cliente do Microsoft Teams.
Escolha a permissão ou as permissões marcadas como menos privilegiadas para essa API. Use uma permissão ou permissões privilegiadas mais altas somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.
Tipo de permissão
Permissões menos privilegiadas
Permissões privilegiadas mais altas
Delegado (conta corporativa ou de estudante)
Presence.ReadWrite
Indisponível.
Delegado (conta pessoal da Microsoft)
Sem suporte.
Sem suporte.
Application
Presence.ReadWrite.All
Indisponível.
Solicitação HTTP
POST /users/{userId}/presence/setUserPreferredPresence
Forneça um objeto JSON com os seguintes parâmetros no corpo da solicitação.
Parâmetro
Tipo
Descrição
atividade
Cadeia de caracteres
As informações complementares à disponibilidade.
availability
Cadeia de caracteres
As informações de presença base.
expirationDuration
Duração
A expiração da sessão de presença do aplicativo representada no formato ISO 8601 para durações. Se não for fornecido, uma expiração padrão será aplicada:
-
DoNotDisturb ou Busy: Expiração em 1 dia - Todos os outros: expiração em 7 dias
A tabela a seguir lista combinações compatíveis de disponibilidade e atividade.
availability
atividade
Descrição
Disponível
Disponível
Defina a presença preferencial do usuário como Available.
Ocupado
Ocupado
Defina a presença preferencial do usuário como Busy.
DoNotDisturb
DoNotDisturb
Defina a presença preferencial do usuário como DoNotDisturb.
BeRightBack
BeRightBack
Defina a presença preferencial do usuário como BeRightBack.
Longe
Longe
Defina a presença preferencial do usuário como Away.
Offline
OffWork
Defina a presença preferencial do usuário como Offline.
Resposta
Se tiver êxito, este método retornará um código de resposta 200 OK.
Exemplos
Solicitação
O exemplo a seguir mostra uma solicitação que define a presença preferencial como DoNotDisturb para um usuário, com uma expiração de 8 horas.
// 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://learn.microsoft.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://learn.microsoft.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://learn.microsoft.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)