Создание и отправка уведомления (не рекомендуется)

Пространство имен: 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!"
        }
    }
}