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!"
        }
    }
}