通知の作成と送信 (非推奨)

名前空間: microsoft.graph

重要

Microsoft Graph通知 API は廃止され、2022 年 1 月の終わりまでにデータの返しを停止します。 別の通知エクスペリエンスについては、「Microsoft Azure通知ハブ」を参照し、詳細については、このブログ投稿を参照してください。

Microsoft ユーザーを対象とした通知を作成して送信Graph。 通知は Microsoft Graph 通知フィード ストアに格納され、ユーザーがサインインしているすべてのデバイス エンドポイント上のすべてのアプリ クライアントに送信されます。

アクセス許可

アプリケーション サービスでは、対象ユーザーに通知を投稿するための追加のアクセス許可は必要とされません。

重要

代わりに委任されたアクセス許可を介してユーザーに代わって通知を投稿する場合、この API を呼び出すには、次のいずれかのアクセス許可が必要です。 通知を作成する場合は、このオプションはお勧めしません。 アクセス許可の選択方法など、詳細については、「アクセス許可」を 参照してください

アクセス許可の種類 アクセス許可 (特権の小さいものから大きいものへ)
委任 (職場または学校のアカウント) Notifications.ReadWrite.CreatedByApp
委任 (個人用 Microsoft アカウント) Notifications.ReadWrite.CreatedByApp
アプリケーション サポートされていません。

HTTP 要求

POST /me/notifications/

要求ヘッダー

名前 説明
Authorization 認証ヘッダーは、呼び出し元の資格情報を渡す場合に使用します。 ベアラー {token}。 必須です。
X-UNS-ID サブスクリプションの作成後に Microsoft Graph 通知サービスによって返され、特定のユーザーを対象とするために使用される UserNotificationSubscriptionId。 必須。
Content-type application/json. Required.

要求本文

要求本文で、通知オブジェクトの JSON 表記を 指定 します。

応答

成功した場合、このメソッドは、通知が正常に作成され、保存されたことを示す応答 201 Created コードを返します。 その後、通知は有効なサブスクリプションを持つ指定されたエンドポイントすべてに対してファンアウトされます。

次の表に、返される可能性があるエラー コードと応答コードを示します。

エラー コード Descrition
HttpStatusCode.BadRequest Body は配列です (複数の通知はサポートされていません)。
HttpStatusCode.BadRequest 本文が API のコントラクトと一致しません。
HttpStatusCode.Forbidden 呼び出し元がブロックされたリストに表示されます。
HttpStatusCode.MethodNotAllowed 使用される HTTP メソッドはサポートされていません。
HttpStatusCode.BadRequest サポートされていないヘッダーが要求に存在します。 2 つのヘッダーはサポートされていません。

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