Creación y envío de una notificación (en desuso)

Espacio de nombres: microsoft.graph

Importante

La API de notificaciones de Microsoft Graph está en desuso y dejará de devolver datos a finales de enero de 2022. Para obtener una experiencia de notificación alternativa, consulte Microsoft Azure Notification Hubs y esta entrada de blog para más información.

Cree y envíe una notificación dirigida a un usuario a través de Microsoft Graph. La notificación se almacena en el almacén de fuentes de notificaciones de Microsoft Graph y se envía a todos los clientes de la aplicación en todos los puntos de conexión de dispositivo en los que el usuario ha iniciado sesión.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Notifications.ReadWrite.CreatedByApp No disponible.
Delegado (cuenta personal de Microsoft) Notifications.ReadWrite.CreatedByApp No disponible.
Aplicación No admitida. No admitida.

Solicitud HTTP

POST /me/notifications/

Encabezados de solicitud

Nombre Descripción
Autorización El encabezado de autorización se usa para pasar las credenciales de la entidad que realiza la llamada. {token} de portador. Obligatorio.
X-UNS-ID UserNotificationSubscriptionId devuelto por el servicio de notificación de Microsoft Graph después de crear una suscripción y se usa para dirigirse al usuario específico. Obligatorio.
Tipo de contenido application/json. Obligatorio.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione una representación JSON de un objeto de notificación .

Respuesta

Si se ejecuta correctamente, este método devuelve un 201 Created código de respuesta que indica que la notificación se creó y almacenó correctamente. La notificación se envía posteriormente a todos los puntos de conexión especificados con una suscripción válida.

En la tabla siguiente se enumeran los posibles códigos de error y respuesta que se pueden devolver.

Código de error Descripción
HttpStatusCode.BadRequest El cuerpo es una matriz (no se admiten varias notificaciones).
HttpStatusCode.BadRequest El cuerpo no coincide con el contrato de la API.
HttpStatusCode.Forbidden El autor de la llamada está en la lista de bloqueados.
HttpStatusCode.MethodNotAllowed No se admite el método HTTP usado.
HttpStatusCode.BadRequest Los encabezados no admitidos están presentes en la solicitud. No se admiten dos encabezados:

If-Modified-Since
If-Range
HttpStatusCode.UnsupportedMediaType El encabezado Content-Encoding está presente y tiene valores de algoritmo de compresión distintos de Deflate o Gzip.
HttpStatusCode.BadRequest Carga no válida.
HttpStatusCode.Forbidden El autor de la llamada no está autorizado para actuar en nombre del usuario ni enviar una notificación al usuario.
HttpStatusCode.Unauthorized El cuerpo de la solicitud contiene tipos de datos de actividad no válidos.
HttpStatusCode.OK Actividad creada correctamente.
HttpStatusCode.NotAcceptable La solicitud se ha limitado o el servidor está ocupado.

Ejemplo

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

Respuesta

Este es un ejemplo de la respuesta correspondiente.

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