Создание и отправка уведомления (не рекомендуется)
Пространство имен: microsoft.graph
Важно!
API уведомлений Microsoft Graph не рекомендуется и прекратит возвращать данные к концу января 2022 г. Дополнительные сведения см. в Центрах уведомлений Microsoft Azure и в этой записи блога.
Создайте и отправьте уведомление, предназначенное для пользователя, через Microsoft Graph. Уведомление хранится в хранилище веб-канала уведомлений Microsoft Graph и отправляется всем клиентам приложений на всех конечных точках устройства, в которые пользователь выполнил вход.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
---|---|---|---|
✅ | ❌ | ❌ | ❌ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения | Разрешения с наименьшими привилегиями | Более высокие привилегированные разрешения |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | Notifications.ReadWrite.CreatedByApp | Недоступно. |
Делегированные (личная учетная запись Майкрософт) | Notifications.ReadWrite.CreatedByApp | Недоступно. |
Для приложений | Не поддерживается. | Не поддерживается. |
HTTP-запрос
POST /me/notifications/
Заголовки запросов
Имя | Описание |
---|---|
Авторизация | Заголовок авторизации используется для передачи учетных данных вызывающей стороны. Bearer {token}. Обязательно. |
X-UNS-ID | UserNotificationSubscriptionId, который возвращается службой уведомлений Microsoft Graph после создания подписки и используется для целевого пользователя. Обязательно. |
Content-Type | application/json. Обязательно. |
Текст запроса
В тексте запроса укажите представление объекта уведомления в формате JSON.
Отклик
В случае успешного 201 Created
выполнения этот метод возвращает код ответа, указывающий, что уведомление было успешно создано и сохранено. Позже уведомление будет размещено для всех указанных конечных точек с допустимой подпиской.
В следующей таблице перечислены возможные коды ошибок и ответов, которые могут быть возвращены.
Код ошибки | Описание |
---|---|
HttpStatusCode.BadRequest | Текст — это массив (несколько уведомлений не поддерживаются). |
HttpStatusCode.BadRequest | Текст не соответствует контракту для API. |
HttpStatusCode.Forbidden | Вызывающий объект находится в списке заблокированных. |
HttpStatusCode.MethodNotAllowed | Используемый метод HTTP не поддерживается. |
HttpStatusCode.BadRequest | В запросе присутствуют неподдерживаемые заголовки. Два заголовка не поддерживаются: If-Modified-Since If-Range |
HttpStatusCode.UnsupportedMediaType | Заголовок Content-Encoding присутствует и имеет значения алгоритма сжатия, отличные от Deflate или Gzip . |
HttpStatusCode.BadRequest | Недопустимые полезные данные. |
HttpStatusCode.Forbidden | Вызывающий не уполномочен действовать от имени пользователя или отправлять ей уведомление. |
HttpStatusCode.Unauthorized | Текст запроса содержит недопустимые типы данных действий. |
HttpStatusCode.OK | Действие успешно создано. |
HttpStatusCode.NotAcceptable | Запрос был отрегулирован или сервер занят. |
Пример
Запрос
Ниже показан пример запроса.
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"
}
Отклик
Ниже приведен пример соответствующего ответа.
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!"
}
}
}