As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor de versão.
De definir o status de disponibilidade e atividade em uma sessão de presença de um aplicativo para um usuário.
Sessões de presença
Um usuário pode ter várias sessões de presença porque o usuário pode estar em vários Teams clientes (desktop, móvel e Web). Cada Teams cliente tem uma sessão de presença independente e a presença do usuário é um estado agregado de todas as sessões atrás.
Da mesma forma, um aplicativo pode ter sua própria sessão de presença para um usuário e ser capaz de atualizar o estado.
A seguir está a precedência de como os estados de sessão são agregados, com "A > B" representando A tendo precedência sobre B:
Estado preferencial do usuário > de nível de sessão (o estado preferencial do usuário substitui estados no nível da sessão)
Entre os estados de nível de sessão: DoNotDisturb (atualmente sem suporte para setPresence) > Ocupado > Disponível > Distância
Tempo de expiração, expiração e manter-se vivo
Uma sessão de presença pode expirare expirar, portanto, o aplicativo precisa chamar essa API antes do tempo final, para manter o estado da sessão; ou antes da expiração, para manter a sessão viva.
Uma sessão de presença pode ser limitada se a disponibilidade for Available e o tempo-de-tempo for de 5 minutos. Quando o tempo passa, o estado de presença desaparece em estágios. Por exemplo, se Available/Availableum aplicativo define a sessão de presença como , Available/AvailableInactive o estado será alternado para em 5 minutos com o primeiro tempo de tempo, em seguida, Away/Away em outros 5 minutos com o segundo tempo.
A expiração de uma sessão de presença é configurável com o expirationDuration parâmetro. Quando uma sessão expira, ela se torna Offline.
Permissões
A permissão a seguir é necessária para chamar a API. Para saber mais, incluindo como escolher permissões, confira Permissões.
Tipo de permissão
Permissões (da com menos para a com mais privilégios)
Delegado (conta corporativa ou de estudante)
Presence.ReadWrite
Delegado (conta pessoal da Microsoft)
Sem suporte.
Aplicativo
Presence.ReadWrite.All
Solicitação HTTP
POST /users/{userId}/presence/setPresence
Cabeçalhos de solicitação
Nome
Descrição
Autorização
{token} de portador. Obrigatório.
Content-Type
application/json. Obrigatório.
Corpo da solicitação
Forneça um objeto JSON com os seguintes parâmetros no corpo da solicitação.
Parâmetro
Tipo
Descrição
sessionId
cadeia de caracteres
A ID da sessão de presença do aplicativo.
availability
cadeia de caracteres
As informações de presença base.
atividade
cadeia de caracteres
As informações complementares à disponibilidade.
expirationDuration
duração
A expiração da sessão de presença do aplicativo. O valor é representado no formato ISO 8601 por durações.Se não for fornecido, será aplicada uma expiração padrão de 5 minutos.
Importante
Forneça a ID do aplicativo como sessionId na solicitação.
Combinações com suporte de availability e são activity :
availability
atividade
Descrição
Disponível
Disponível
Atualiza a sessão de presença como Disponível.
Ocupado
InACall
Atualiza a sessão de presença como Ocupado, InACall.
Ocupado
InAConferenceCall
Atualiza a sessão de presença como Busy, InAConferenceCall.
Away
Away
Atualiza a sessão de presença como Distante.
Resposta
Se tiver êxito, este método retornará um código de resposta 200 OK.
Exemplos
A solicitação a seguir mostra o aplicativo com ID 22553876-f5ab-4529-bffb-cfe50aa89f87 que define sua sessão de presença para o usuário fa8bf3dc-eca7-46b7-bad1-db199b62afc3.
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var sessionId = "22553876-f5ab-4529-bffb-cfe50aa89f87";
var availability = "Available";
var activity = "Available";
var expirationDuration = new Duration("PT1H");
await graphClient.Users["{user-id}"].Presence
.SetPresence(availability,activity,sessionId,expirationDuration)
.Request()
.PostAsync();
Importante
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.New()
sessionId := "22553876-f5ab-4529-bffb-cfe50aa89f87"
requestBody.SetSessionId(&sessionId)
availability := "Available"
requestBody.SetAvailability(&availability)
activity := "Available"
requestBody.SetActivity(&activity)
expirationDuration := "PT1H"
requestBody.SetExpirationDuration(&expirationDuration)
userId := "user-id"
graphClient.UsersById(&userId).Presence().SetPresence(user-id).Post(requestBody)
Importante
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.
Os SDKs do Microsoft Graph usam a versão v1.0 da API por padrão e não dão suporte a todos os tipos, propriedades e APIs disponíveis na versão beta. Para obter detalhes sobre como acessar a API beta com o SDK, consulte Usar os SDKs do Microsoft Graph com a API beta.