Crear y enviar una notificación

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versió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 del dispositivo en los que el usuario ha iniciado sesión.

Esta API está disponible en las siguientes implementaciones en la nube nacional.

Servicio global Administración pública de EE. UU. Gobierno de EE. UU. L5 (DOD) China operado por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use uno o varios permisos con privilegios más altos 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 persona que llama. {token} de portador. Obligatorio.
X-UNS-ID UserNotificationSubscriptionId que devuelve el servicio de notificación de Microsoft Graph después de crear una suscripción y que 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 realiza correctamente, este método devuelve un 201 Created código de respuesta que indica que la notificación se creó y almacenó correctamente. A continuación, la notificación se distribuye 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 bloqueada.
HttpStatusCode.MethodNotAllowed El método HTTP usado no es compatible.
HttpStatusCode.BadRequest Hay encabezados no admitidos 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 útil no válida.
HttpStatusCode.Forbidden El autor de la llamada no está autorizado para actuar en nombre del usuario ni para 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

En el ejemplo siguiente se muestra 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!"
        }
    }
}