Criar e enviar uma notificação

Namespace: microsoft.graph

Importante

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 Versão.

Criar e enviar uma notificação direcionada a um usuário por meio do Microsoft Graph. A notificação é armazenada no armazenamento do feed de notificação do Microsoft Graph e é enviada a todos os clientes de aplicativo em todos os pontos de extremidade de dispositivo aos quais o usuário está conectado.

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

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos 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 com privilégios mais elevados
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 chamadora. {token} de portador. Obrigatório.
X-UNS-ID A UserNotificationSubscriptionId que é retornada pelo serviço de notificação do Microsoft Graph após a criação de uma assinatura e é usada 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 código de 201 Created resposta que indica que a notificação foi criada e armazenada com êxito. Em seguida, a notificação é distribuída para 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 O corpo é uma matriz (não há suporte para várias notificações).
HttpStatusCode.BadRequest O corpo não corresponde ao contrato da API.
HttpStatusCode.Forbidden O chamador está na lista de bloqueados.
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 uma 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

O exemplo a seguir mostra a 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!"
        }
    }
}