Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Namespace: microsoft.graph
Renove uma assinatura ampliando seu tempo de validade.
A tabela na seção Permissões lista os recursos que dão suporte à assinatura de notificações de alteração.
As assinaturas expiram após um período de tempo que varia de acordo com o tipo de recurso. Para evitar a perda de notificações de alteração, um aplicativo deve renovar suas assinaturas bem antes da data de expiração. Consulte a assinatura para saber o comprimento máximo de uma assinatura para cada tipo de recurso.
Essa API está disponível nas seguintes implantações de nuvem nacional.
| Serviço global | Governo dos EUA L4 | US Government L5 (DOD) | China operada pela 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Permissões
Dependendo do recurso e do tipo de permissão (delegado ou aplicativo) solicitado, a permissão especificada na tabela a seguir é a menos privilegiada necessária para fazer chamadas a esta API. Para saber mais, incluindo tomar cuidado antes de escolher as permissões mais privilegiadas, pesquise as seguintes permissões em Permissões.
| Recurso com suporte | Delegada (conta corporativa ou de estudante) | Delegada (conta pessoal da Microsoft) | Application |
|---|---|---|---|
aiInteraction copilot/users/{userId}/interactionHistory/getAllEnterpriseInteractions Interações de IA do Copilot das quais um determinado usuário faz parte. |
AiEnterpriseInteraction.Read | Sem suporte. | AiEnterpriseInteraction.Read.All, AiEnterpriseInteraction.Read.User |
aiInteraction copilot/interactionHistory/getAllEnterpriseInteractions Interações de IA do Copilot em uma organização. |
Sem suporte. | Sem suporte. | AiEnterpriseInteraction.Read.All |
| callRecord | Incompatível | Incompatível | CallRecords.Read.All |
callRecording communications/onlineMeetings/getAllRecordings Todas as gravações em uma organização. |
Sem suporte. | Sem suporte. | OnlineMeetingRecording.Read.All |
callRecording communications/onlineMeetings/{onlineMeetingId}/recordings Todas as gravações de uma reunião específica. |
OnlineMeetingRecording.Read.All | Sem suporte. | OnlineMeetingRecording.Read.All |
callRecording users/{userId}/onlineMeetings/getAllRecordings Uma gravação de chamada que se torna disponível em uma reunião organizada por um usuário específico. |
OnlineMeetingRecording.Read.All | Sem suporte. | OnlineMeetingRecording.Read.All |
callTranscript communications/onlineMeetings/getAllTranscripts Todas as transcrições em uma organização. |
Sem suporte. | Sem suporte. | OnlineMeetingTranscript.Read.All |
callTranscript communications/onlineMeetings/{onlineMeetingId}/transcripts Todas as transcrições de uma reunião específica. |
OnlineMeetingTranscript.Read.All | Sem suporte. | OnlineMeetingTranscript.Read.All |
callTranscript users/{userId}/onlineMeetings/getAllTranscripts Uma transcrição de chamada que fica disponível em uma reunião organizada por um usuário específico. |
OnlineMeetingTranscript.Read.All | Sem suporte. | OnlineMeetingTranscript.Read.All |
| canal (/teams/getAllChannels – todos os canais em uma organização) | Incompatível | Sem suporte | Channel.ReadBasic.All, ChannelSettings.Read.All |
| canal (/teams/{id}/channels) | Channel.ReadBasic.All, ChannelSettings.Read.All | Sem suporte | Channel.ReadBasic.All, ChannelSettings.Read.All |
| chat chat (/conversa – todos os chats em uma organização) | Incompatível | Incompatível | Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
| chat (/chats/{id}) | Chat.ReadBasic, Chat.Read, Chat.ReadWrite | Sem suporte | ChatSettings.Read. Chat*, ChatSettings.ReadWrite. Chat*, Chat. Gerar. Chat*, Chat. ReadBasic.All, Chat. Read.All, Chat. ReadWrite.All |
|
chat /appCatalogs/teamsApps/{id}/installedToChats Todos os chats em uma organização onde um determinado aplicativo do Teams está instalado. |
Sem suporte | Sem suporte | Chat. ReadBasic.WhereInstalled, Chat. Read.WhereInstalled, Chat. ReadWrite.WhereInstalled |
chat /users/{id}/chats Todos os chats dos quais um determinado usuário faz parte. |
Chat.ReadBasic, Chat.Read, Chat.ReadWrite | Sem suporte. | Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
| chatMessage (/teams/{id}/channels/{id}/messages) | ChannelMessage.Read.All | Sem suporte | ChannelMessage.Read.Group*, ChannelMessage.Read.All |
| chatMessage (/teams/getAllMessages -- todas as mensagens de canal na organização) | Sem suporte | Sem suporte | ChannelMessage.Read.All |
| chatMessage (/chats/{id}/messages) | Sem suporte | Sem suporte | Chat.Read.All |
| chatMessage (/teams/getAllMessages -- todas as mensagens de chat na organização) | Sem suporte | Sem suporte | Chat.Read.All |
| chatMessage (/users/{id}/chats/getAllMessages -- mensagens de chat para todos os chats dos quais um usuário específico faz parte) | Chat.Read, Chat.ReadWrite | Sem suporte | Chat.Read.All, Chat.ReadWrite.All |
|
chatMessage /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages Mensagens de Chat para todos os chats em uma organização onde um determinado aplicativo do Teams está instalado. |
Sem suporte | Sem suporte | Chat. Read.WhereInstalled, Chat. ReadWrite.WhereInstalled |
| contato | Contacts.Read | Contacts.Read | Contacts.Read |
| conversationMember (/chats/getAllMembers) | Incompatível | Sem suporte | ChatMember.Read.All, ChatMember.ReadWrite.All, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
| conversationMember (/chats/{id}/members) | ChatMember.Read, ChatMember.ReadWrite, Chat.ReadBasic, Chat.Read, Chat.ReadWrite | Incompatível | ChatMember.Read. Chat*, Chat. Gerar. Chat*, ChatMember.Read.All, ChatMember.ReadWrite.All, Chat. ReadBasic.All, Chat. Read.All, Chat. ReadWrite.All |
|
conversationMember /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers Membros do Chat para todos os chats em uma organização onde um determinado aplicativo do Teams está instalado. |
Sem suporte. | Sem suporte. | ChatMember.Read.WhereInstalled, ChatMember.ReadWrite.WhereInstalled, Chat. ReadBasic.WhereInstalled, Chat. Read.WhereInstalled, Chat. ReadWrite.WhereInstalled |
| conversationMember (/teams/{id}/members) | TeamMember.Read.All | Incompatível | TeamMember.Read.All |
| conversationMember (/teams/{id}/channels/getAllMembers) | Incompatível | Incompatível | ChannelMember.Read.All |
| driveItem (OneDrive pessoal de um usuário) | Sem suporte | Files.ReadWrite | Sem suporte |
| driveItem (OneDrive for Business) | Files.ReadWrite.All | Sem suporte | Files.ReadWrite.All |
| evento | Calendars.Read | Calendars.Read | Calendars.Read |
| grupo | Group.Read.All | Sem suporte | Group.Read.All |
| conversa em grupo | Group.Read.All | Sem suporte | Sem suporte |
| list | Sites.ReadWrite.All | Sem suporte | Sites.ReadWrite.All |
| message | Mail.ReadBasic, Mail.Read | Mail.ReadBasic, Mail.Read | Mail.Read |
|
offerShiftRequest (/teams/{id}/schedule/offerShiftRequests) Alterações em qualquer solicitação de turno de oferta em uma equipe. |
Schedule.Read.All, Schedule.ReadWrite.All | Sem suporte. | Schedule.Read.All, Schedule.ReadWrite.All |
|
openShiftChangeRequest (/teams/{id}/schedule/openShiftChangeRequests) Alterações em qualquer solicitação de turno aberto em uma equipe. |
Schedule.Read.All, Schedule.ReadWrite.All | Sem suporte. | Schedule.Read.All, Schedule.ReadWrite.All |
| presence | Presence.Read.All | Sem suporte. | Sem suporte. |
| printer | Sem suporte | Sem suporte | Printer.Read.All, Printer.ReadWrite.All |
| printTaskDefinition | Sem suporte | Sem suporte | PrintTaskDefinition.ReadWrite.All |
| alerta de segurança | SecurityEvents.ReadWrite.All | Sem suporte | SecurityEvents.ReadWrite.All |
|
shift (/teams/{id}/schedule/shifts) Mudanças em qualquer turno em uma equipe. |
Schedule.Read.All, Schedule.ReadWrite.All | Sem suporte. | Schedule.Read.All, Schedule.ReadWrite.All |
|
swapShiftsChangeRequest (/teams/{id}/schedule/swapShiftsChangeRequests) Alterações em qualquer solicitação de turno de troca em uma equipe. |
Schedule.Read.All, Schedule.ReadWrite.All | Sem suporte. | Schedule.Read.All, Schedule.ReadWrite.All |
| equipe (/teams – todas as equipes em uma organização) | Sem suporte | Incompatível | Team.ReadBasic.All, TeamSettings.Read.All |
| equipe (/teams/{id}) | Team.ReadBasic.All, TeamSettings.Read.All | Incompatível | Team.ReadBasic.All, TeamSettings.Read.All |
|
timeOffRequest (/teams/{id}/schedule/timeOffRequests) Alterações em qualquer solicitação de folga em uma equipe. |
Schedule.Read.All, Schedule.ReadWrite.All | Sem suporte. | Schedule.Read.All, Schedule.ReadWrite.All |
| todoTask | Tasks.ReadWrite | Tasks.ReadWrite | Incompatível |
| user | User.Read.All | User.Read.All | User.Read.All |
| virtualEventWebinar | VirtualEvent.Read | Sem suporte. | VirtualEvent.Read.All |
Observação: Permissões marcadas com * usam consentimento específico de recurso.
chatMessage
As assinaturas chatMessage podem ser especificadas para incluir dados de recursos (includeResourceData definido como true). Nesse caso, a criptografia é necessária e a criação da assinatura falhará se um encryptionCertificate não for especificado para essas assinaturas.
Use o cabeçalho da Prefer: include-unknown-enum-members solicitação para obter os seguintes valores em chatMessage, messageType, enumeração evolutiva: systemEventMessage for /teams/{id}/channels/{id}/messages e /chats/{id}/messages resource.
conversationMember
As assinaturas conversationMember podem ser especificadas para incluir dados de recursos (includeResourceData definido como true). Nesse caso, a criptografia é necessária e a criação da assinatura falhará se um encryptionCertificate não for especificado para essas assinaturas.
Equipe, canal e chat
As assinaturas de equipe, canal e chat podem ser especificadas para incluir dados de recursos (includeResourceData definido como true). Nesse caso, a criptografia é necessária e a criação da assinatura falhará se um encryptionCertificate não for especificado para essas assinaturas.
Você pode usar o parâmetro da cadeia de caracteres de consulta notifyOnUserSpecificProperties ao assinar alterações em um chat específico ou no nível do usuário. Quando você define o parâmetro de cadeia de caracteres de consulta notifyOnUserSpecificProperties durante true a criação da assinatura, dois tipos de conteúdo são enviados ao assinante. Um tipo contém propriedades específicas do usuário e o outro é enviado sem elas. Para obter mais informações, consulte Obter notificações de alteração para chats usando o Microsoft Graph.
aiInteraction
As assinaturas nas interações de IA do Copilot exigem uma licença válida do Copilot que inclua o seguinte plano de serviço do Copilot:
- Microsoft 365 Copilot Chat: 3f30311c-6b1e-48a4-ab79-725b469da960
Para assinaturas direcionadas a interações de IA do Copilot das quais um determinado usuário faz parte, o usuário no caminho do recurso deve ter os planos de serviço anteriores atribuídos a ele em um estado válido.
Para assinaturas que direcionam interações de IA do Copilot para todo o locatário, o locatário deve ter licenças válidas provisionadas que incluam todos os planos de serviço anteriores do Copilot.
driveItem
As limitações adicionais se aplicam aos itens do OneDrive. As limitações se aplicam para criação e gerenciamento de assinaturas (receber, atualizar e excluir assinaturas).
No OneDrive pessoal, você pode se inscrever em qualquer pasta raiz ou qualquer subpasta da unidade. No OneDrive for Business, você pode assinar somente a pasta raiz. As notificações de alteração são enviadas para os tipos de alterações solicitados na pasta assinada ou em qualquer arquivo, pasta ou outras instâncias driveItem em sua hierarquia. Você não pode se inscrever em instâncias de drive ou driveItem que não sejam pastas, como arquivos individuais.
contato, evento e mensagem
Você pode assinar alterações nos recursos de contato,evento ou mensagem doOutlook.
Criar e gerenciar (obter, atualizar e excluir) uma assinatura requer um escopo de leitura para o recurso. Por exemplo, para receber notificações de alteração nas mensagens, seu aplicativo precisa da permissão Mail.Read. As notificações de alteração do Outlook dão suporte a escopos de permissão de aplicativo e delegados. Observe as seguintes limitações:
A permissão delegada dá suporte a inscrição de itens em pastas apenas na caixa de correio do usuário conectado. Por exemplo, você não pode usar a permissão delegada Calendars.Read para assinar eventos na caixa de correio de outro usuário.
Se inscrever para alterar as notificações de contatos, eventos no Outlook ou mensagens em pastascompartilhadas ou delegadas:
- Usar a permissão de aplicativos correspondentes para inscrever as alterações dos itens em uma pasta ou uma caixa de correio de qualquer usuários no locatário.
- Não use as permissões de compartilhamento do Outlook (Contacts.Read.Shared, Calendars.Read.Shared, Mail.Read.Shared e suas contrapartes de leitura/gravação), pois elas não dão suporte à assinatura para notificações de alteração em itens em pastas compartilhadas ou delegadas.
presença
presença As assinaturas no chatMessage de presença podem ser especificadas para incluir dados de recursos (includeResourceData definido como true). Nesse caso, a criptografia é necessária e a criação da assinatura falhará se um encryptionCertificate e encryptionCertificateId não forem especificados. Para obter detalhes sobre assinaturas de presença, consulte Obter notificações de alteração para atualizações de presença no Microsoft Teams.
virtualEventWebinar
As assinaturas em eventos virtuais dão suporte apenas a notificações básicas e estão limitadas a algumas entidades de um evento virtual. Para obter mais informações sobre os tipos de assinatura com suporte, consulte Obter notificações de alteração para atualizações de eventos virtuais do Microsoft Teams.
Solicitação HTTP
PATCH /subscriptions/{id}
Cabeçalhos de solicitação
| Nome | Tipo | Descrição |
|---|---|---|
| Autorização | string | {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização. |
Corpo da solicitação
No corpo da solicitação, forneça apenas os valores das propriedades a serem atualizadas. As propriedades existentes que não estão incluídas no corpo da solicitação mantêm seus valores anteriores ou são recalculadas com base nas alterações de outros valores de propriedade.
A tabela a seguir especifica as propriedades que podem ser atualizadas.
O corpo da solicitação deve conter a expirationDateTime propriedade ou notificationUrl e seu valor.
| Nome | Tipo | Descrição |
|---|---|---|
| expirationDateTime | DateTimeOffset | Especifica a data e a hora em UTC quando a assinatura expira. Para a assinatura máxima com suporte, o período varia de acordo com o recurso. Para obter mais informações, consulte Vida útil da assinatura. |
| notificationUrl | Cadeia de caracteres | Esta URL deve fazer uso do protocolo HTTPS. Qualquer parâmetro de cadeia de caracteres de consulta incluído na propriedade notificationUrl é incluído na solicitação HTTP POST quando o Microsoft Graph envia as notificações de alteração. |
Resposta
Se bem-sucedido, este método retorna um código de resposta 200 OK e um objeto subscription no corpo da resposta.
Observação
Uma 404 Not Found resposta indica que a assinatura não existe mais. Por exemplo, ele já expirou e foi removido pelo serviço ou foi excluído. A assinatura não pode ser renovada nesse estado, portanto, repetir a atualização continua falhando. Para evitar notificações de alteração ausentes, crie uma nova assinatura em vez de repetir a atualização. Para reduzir a frequência com que isso acontece, renove as assinaturas bem antes de expirarem e use as notificações do ciclo de vida para renová-las de forma proativa.
Para detalhes sobre como os erros são retornados, confira Respostas de erro.
Exemplo
Solicitação
O exemplo a seguir mostra uma solicitação.
PATCH https://graph.microsoft.com/v1.0/subscriptions/{id}
Content-type: application/json
{
"expirationDateTime":"2016-11-22T18:23:45.9356913Z"
}
Resposta
O exemplo a seguir mostra a resposta.
HTTP/1.1 200 OK
Content-type: application/json
{
"id":"7f105c7d-2dc5-4530-97cd-4e7ae6534c07",
"resource":"me/messages",
"applicationId": "24d3b144-21ae-4080-943f-7067b395b913",
"changeType":"created,updated",
"clientState":"subscription-identifier",
"notificationUrl":"https://webhook.azurewebsites.net/api/send/myNotifyClient",
"lifecycleNotificationUrl":"https://webhook.azurewebsites.net/api/send/lifecycleNotifications",
"expirationDateTime":"2016-11-22T18:23:45.9356913Z",
"creatorId": "8ee44408-0679-472c-bc2a-692812af3437",
"latestSupportedTlsVersion": "v1_2",
"encryptionCertificate": "",
"encryptionCertificateId": "",
"includeResourceData": false,
"notificationContentType": "application/json"
}