Establezca la disponibilidad y el estado de actividad preferidos para un usuario. Si se establece la presencia preferida de un usuario, la presencia del usuario se muestra como el estado preferido.
La presencia preferida solo surte efecto cuando exista al menos una sesión de presencia para el usuario. De lo contrario, la presencia del usuario se muestra como Offline.
Se crea una sesión de presencia como resultado de una operación setPresence correcta o si el usuario ha iniciado sesión en un cliente de Microsoft Teams.
Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.
Tipo de permiso
Permisos con privilegios mínimos
Permisos con privilegios más altos
Delegado (cuenta profesional o educativa)
Presence.ReadWrite
No disponible.
Delegado (cuenta personal de Microsoft)
No admitida.
No admitida.
Aplicación
Presence.ReadWrite.All
No disponible.
Solicitud HTTP
POST /users/{userId}/presence/setUserPreferredPresence
En el cuerpo de la solicitud, proporcione un objeto JSON con los siguientes parámetros.
Parámetro
Tipo
Descripción
actividad
Cadena
Información complementaria a la disponibilidad.
disponibilidad
Cadena
Información de presencia base.
expirationDuration
Duración
La expiración de la sesión de presencia de la aplicación representada en formato ISO 8601 durante las duraciones. Si no se proporciona, se aplicará una expiración predeterminada:
-
DoNotDisturb o Busy: expiración en 1 día - Todos los demás: Expiración en 7 días
En la tabla siguiente se enumeran las combinaciones admitidas de disponibilidad y actividad.
disponibilidad
actividad
Descripción
Disponible
Disponible
Establezca la presencia preferida por el usuario como Available.
Ocupado
Ocupado
Establezca la presencia preferida por el usuario como Busy.
Donotdisturb
Donotdisturb
Establezca la presencia preferida por el usuario como DoNotDisturb.
BeRightBack
BeRightBack
Establezca la presencia preferida por el usuario como BeRightBack.
Lejos
Lejos
Establezca la presencia preferida por el usuario como Away.
Offline
OffWork
Establezca la presencia preferida por el usuario como Offline.
Respuesta
Si se ejecuta correctamente, este método devuelve un código de respuesta 200 OK.
Ejemplos
Solicitud
En el ejemplo siguiente se muestra una solicitud que establece la presencia preferida como DoNotDisturb para un usuario, con una expiración 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://zcusa.951200.xyz/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://zcusa.951200.xyz/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://zcusa.951200.xyz/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)