创建和发送通知

命名空间:microsoft.graph

重要

Microsoft Graph /beta 版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。

通过 Microsoft Graph 创建并发送面向用户的通知。 通知存储在 Microsoft Graph 通知源存储中,并发送到用户登录的所有设备终结点上的所有应用客户端。

此 API 可用于以下国家级云部署

全局服务 美国政府 L4 美国政府 L5 (DOD) 由世纪互联运营的中国

权限

为此 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 请求中存在不支持的标头。 不支持两个标头:

If-Modified-Since
If-Range
HttpStatusCode.UnsupportedMediaType 标头内容编码存在,并且具有 或 Gzip以外的Deflate压缩算法值。
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!"
        }
    }
}