你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建或覆盖安装

此方法创建或覆盖安装。

请求

方法 请求 URI HTTP 版本
PUT https://{namespace}.servicebus.windows.net/{NotificationHub}/installations/{id}?api-version=2015-01 HTTP/1.1

请求标头

下表介绍必需的和可选的请求标头。

请求标头 说明
Content-Type application/json
授权 使用 服务总线进行共享访问签名身份验证中指定的生成的 SAS 令牌。
x-ms-version 2015-01

请求正文

下表描述了用于安装的 JSON 请求正文的属性:

名称 类型 必需 只读 说明
installationId String 全局唯一标识符字符串
userID String 包含字母数字字符和 -_@#.:=组合的自定义字符串。 UserID 与安装 ID 之间存在一对多关系 (即一个用户 ID 可与多个安装相关联)
lastActiveOn 字符串 PNS 使安装停用的日期。
expirationTime String 包含 W3C DTF、YYYY-MM-DDThh:mmTZD (的日期和时间的字符串,例如,1997-07-16T19:20+01:00) ) ,其中注册将过期。 可以在创建或更新时在中心级别设置该值,默认情况下, (9999-12-31T23:59:59:59) 过期。
lastUpdate 字符串 更新时忽略。 读取时返回。 此安装的上次更新的 W3C 格式的日期。
平台 字符串 可以是 {APNS、WNS、MPNS、ADM、GCM}。
pushChannel String 如果使用 WNS 和 ApplicationTile) 的 ChannelUri,则此安装的 PNS 句柄 (。
expiredPushChannel 布尔 更新时忽略。 读取时返回。 如果 PNS 已过期通道,则此参数为 true
标记 字符串数组 标记数组。 标记是中心规范中定义的字符串。
模板 JSON 对象 一个 JSON 对象,表示模板名称到模板说明的字典。
模板。{name} 字符串 表示模板的 JSON 对象。
模板。{name}.body 字符串 是(如果存在模板) 通知有效负载正文的模板。
模板。{name}.headers JSON 对象 错误。 仅当平台为 WNS 或 MPNS 时,才能存在。 JSON 对象,其中每个属性都是标头名称,值是模板表达式。
模板。{name}.expiry 字符串 否。 仅当平台为 apns 时,才能存在 以 W3D 日期格式计算的模板表达式。
模板。{name}.tags 字符串数组 此模板的标记数组。
secondaryTiles JSON 对象 错误。 仅当平台为 wns 时,才能存在。 包含 tileId 和 secondaryTiles 对象的字典的 JSON 对象。
secondaryTile。{tileId} JSON 对象 具有辅助磁贴的推送属性的 JSON 对象。
secondaryTile。{tileId}.pushChannel 字符串 是,如果 tileId 存在 辅助磁贴的 ChannelUri。
secondaryTile。{tileId}.tags 字符串数组 用于向辅助磁贴发送本机通知的标记。
secondaryTile。{tileId}.templates JSON 对象 与 templates 属性相同,但对于每个辅助磁贴。

请注意以下几点:

  • 在 JSON 中,元素的顺序并不重要。
  • APNS、GCM、ADM 的模板正文必须是 JSON。
  • WNS 和 MPNS (模板正文必须是 XML,原始) 除外。
  • WNS 的模板必须包含 X-WNS-Type 标头。
  • MPNS 的模板必须具有兼容的标头,如为 Windows Phone 8 发送推送通知中所述。

下面是一些 JSON 示例。

向 APNS 注册的示例:

{ 
    "installationId": "12234", 
    "userID": "MyAmazingUser",
    "tags": ["foo", "bar"], 
    "platform": "apns", 
    "pushChannel": "ABCDEF-123456-…" 
}  

注意

Tags 元素是可选的。

以本机方式向 WNS 注册的示例,包括模板和无标记:

{ 
    "installationId": "12234", 
    "userID": "MyAmazingUser",
    "platform": "wns", 
    "pushChannel": "https://db3...", 
    "templates": { 
        "myTemplate" : { 
            body : '<toast><visual lang="en-US"><binding template="ToastTest01"><text id="1">$myTextProp1</text></binding></visual></tile>',
            headers: { "X-WNS-Type": "wns/toast" }, 
            "tags": ["foo", "bar"] 
            } 

        } 
}  

包含许多可能元素的框架列表

{ 
    installationId: "", 
    userID: "",
    expirationTime: "", 
    tags: ["foo", "bar"],
    lastUpdate: "", 
    user: "", 
    advertisingId: "", 
    appId: "" 
    platform: "", 
    pushChannel: "", 

    templates: { 
        "templateName1" : { 
            body: "", 
            headers: { "X-WNS-Type": "wns/tile" }, 
            expiration: "",
            tags: ["foo", "bar"] 
            } 
        } 

    secondaryTiles: { 
        "tileId1": { 
            pushChannel: "", 
            tags: ["foo", "bar"], 

            templates: { 
                "otherTemplate": { 
                    bodyTemplate: "", 
                    headers: { ... }, 
                    tags: ["foo"] 
                    } 
                } 
            } 
        }
}  

响应

响应包括 HTTP 状态代码和一组响应标头。

响应代码

代码 说明
200 安装已成功排队,并在后台进行处理。
400 无法创建/覆盖安装,因为请求格式不正确。
401 授权失败。 访问密钥不正确。
403 此命名空间中的安装过多 - 未创建安装。

有关状态代码的信息,请参阅 状态和错误代码

响应头

响应标头 说明
Content-type application/json
Content-Location 安装位置的格式为: https://{namespace}.servicebus.windows.net/{NotificationHub}/installations/<installationId>

响应正文

无。

另请参阅

读取安装
按安装 ID 更新安装
删除安装