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