Criar e enviar uma notificação (preterida)
Namespace: microsoft.graph
Importante
A API de notificações do Microsoft Graph está preterida e deixará de retornar dados no final de janeiro de 2022. Para uma experiência de notificação alternativa, confira os Hubs de Notificações do Microsoft Azure e veja esta postagem no blog para obter mais informações.
Crie e envie uma notificação direcionada a um usuário por meio do Microsoft Graph. A notificação é armazenada no repositório de feed de notificação do Microsoft Graph e é enviada a todos os clientes do aplicativo em todos os pontos de extremidade do dispositivo aos quais o usuário está conectado.
Essa API está disponível nas seguintes implantações nacionais de nuvem.
Serviço global | Governo dos EUA L4 | GOVERNO DOS EUA L5 (DOD) | China operada pela 21Vianet |
---|---|---|---|
✅ | ❌ | ❌ | ❌ |
Permissões
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) | Notifications.ReadWrite.CreatedByApp | Indisponível. |
Delegado (conta pessoal da Microsoft) | Notifications.ReadWrite.CreatedByApp | Indisponível. |
Aplicativo | Sem suporte. | Sem suporte. |
Solicitação HTTP
POST /me/notifications/
Cabeçalhos de solicitação
Nome | Descrição |
---|---|
Authorization | O cabeçalho de autorização é usado para passar as credenciais da parte de chamada. {token} de portador. Obrigatório. |
ID X-UNS | O UserNotificationSubscriptionId que é retornado pelo serviço de notificação do Microsoft Graph depois de criar uma assinatura e é usado para direcionar o usuário específico. Obrigatório. |
Content-type | application/json. Obrigatório. |
Corpo da solicitação
No corpo da solicitação, forneça uma representação JSON de um objeto de notificação .
Resposta
Se for bem-sucedido, esse método retornará um 201 Created
código de resposta que indica que a notificação foi criada e armazenada com êxito. A notificação é posteriormente limitada a todos os pontos de extremidade especificados com uma assinatura válida.
A tabela a seguir lista os possíveis códigos de erro e resposta que podem ser retornados.
Código de erro | Descrição |
---|---|
HttpStatusCode.BadRequest | Body é uma matriz (várias notificações não têm suporte). |
HttpStatusCode.BadRequest | O corpo não corresponde ao contrato da API. |
HttpStatusCode.Forbidden | O chamador está na lista bloqueada. |
HttpStatusCode.MethodNotAllowed | Não há suporte para o método HTTP usado. |
HttpStatusCode.BadRequest | Cabeçalhos sem suporte estão presentes na solicitação. Não há suporte para dois cabeçalhos: If-Modified-Since If-Range |
HttpStatusCode.UnsupportedMediaType | O cabeçalho Content-Encoding está presente e tem valores de algoritmo de compactação diferentes de Deflate ou Gzip . |
HttpStatusCode.BadRequest | Carga inválida. |
HttpStatusCode.Forbidden | O chamador não está autorizado a agir em nome do usuário ou enviar notificação ao usuário. |
HttpStatusCode.Unauthorized | O corpo da solicitação contém tipos de dados de atividade inválidos. |
HttpStatusCode.OK | Atividade criada com êxito. |
HttpStatusCode.NotAcceptable | A solicitação foi limitada ou o servidor está ocupado. |
Exemplo
Solicitação
O exemplo a seguir mostra uma solicitação.
POST https://graph.microsoft.com/beta/me/notifications/
Content-type: application/json
{
"targetHostName": "graphnotifications.sample.windows.com",
"appNotificationId": "testDirectToastNotification",
"expirationDateTime": "2019-10-30T23:59:00.000Z",
"payload": {
"visualContent": {
"title": "Hello World!",
"body": "Notifications are Great!"
}
},
"targetPolicy": {
"platformTypes": [
"windows",
"ios",
"android"
]
},
"priority": "High",
"groupName": "TestGroup",
"displayTimeToLive": "60"
}
Resposta
Aqui está um exemplo da resposta correspondente.
HTTP/1.1 201
client-request-id: 71e62feb-8d72-4912-8b2c-4cee9d89e781
content-length: 356
content-type: application/json
location: https://graph.microsoft.com/beta/me/activities/119081f2-f19d-4fa8-817c-7e01092c0f7d
request-id: 71e62feb-8d72-4912-8b2c-4cee9d89e781
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('graphnotify%40contoso.com')/notifications/$entity",
"displayTimeToLive": 59,
"expirationDateTime": "2019-10-28T22:05:36.25Z",
"groupName": "TestGroup",
"id": "119081f2-f19d-4fa8-817c-7e01092c0f7d",
"priority": "High",
"payload": {
"visualContent": {
"title": "Hello World!",
"body": "Notifications are Great!"
}
}
}