通知を作成し送信する

名前空間: microsoft.graph

重要

Microsoft Graph の /beta バージョンの API は変更される可能性があります。 実稼働アプリケーションでこれらの API を使用することは、サポートされていません。 v1.0 で API を使用できるかどうかを確認するには、Version セレクターを使用します。

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

この API は、次の国内クラウド展開で使用できます。

グローバル サービス 米国政府機関 L4 米国政府機関 L5 (DOD) 21Vianet が運営する中国

アクセス許可

この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。

アクセス許可の種類 最小特権アクセス許可 より高い特権のアクセス許可
委任 (職場または学校のアカウント) Notifications.ReadWrite.CreatedByApp 注意事項なし。
委任 (個人用 Microsoft アカウント) Notifications.ReadWrite.CreatedByApp 注意事項なし。
アプリケーション サポートされていません。 サポートされていません。

HTTP 要求

POST /me/notifications/

要求ヘッダー

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

要求本文

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

応答

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

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

エラー コード 説明
HttpStatusCode.BadRequest 本文は配列です (複数の通知はサポートされていません)。
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!"
        }
    }
}