You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure通知中心从GCM迁移至FCMv1 REST API求助:求JSON文档及示例

Azure Notification Hub FCMv1迁移:JSON格式REST API操作指南及问题排查

一、你的curl请求失败的核心原因

你提交的curl请求里,JSON字段误用了registrationId,FCMv1格式的注册需要使用**fcmV1RegistrationId**作为字段名。同时要确认两个细节:

  1. URL中的{ourNotificationHub}和{customHubName}已替换为实际的通知中心命名空间与Hub名称
  2. SharedAccessSignature里的sr参数值要与你的通知中心命名空间完全匹配(注意示例里的hubNaem是拼写错误)

修正后的注册curl示例:

curl --location 'https://{your-namespace}.servicebus.windows.net/{your-hub-name}/registrations' \
--header 'Authorization: SharedAccessSignature sr=https%3a%2f%2f{your-namespace}.servicebus.windows.net%2f{your-hub-name}&sig={your-sig}&se={expiry}&skn=DefaultFullSharedAccessSignature' \
--header 'Content-Type: application/json' \
--data '{
  "fcmV1RegistrationId": "4qX-Od8lS0yKvX8V7ITP7X:APA91bH8qOTNvMNNFI6fljFb6iI_KgSRqIuYldu8zNPK1n-Kn-xrgy2HlKdCwUsUK8yROxBifDzMgwpYkwIdZQl-YX0_R_HhyODwKGF65lqluFIhZ9V9Orq5k6oDnN1gZXfyd5WjcKf_",
  "platform": "fcmV1",
  "tags": ["PAIR-ID_5271"]
}'

二、JSON格式的完整操作示例

1. 设备注册(FCMv1)

  • 请求方式:POST
  • URL:https://{namespace}.servicebus.windows.net/{hub-name}/registrations
  • Headers:
    • Authorization: 有效的SharedAccessSignature
    • Content-Type: application/json
  • 请求体:
{
  "fcmV1RegistrationId": "{FCMv1设备令牌}",
  "platform": "fcmV1",
  "tags": ["tag1", "tag2", "PAIR-ID_XXX"]
}
  • 返回:包含Azure生成的registrationId(用于后续更新/删除操作)的JSON响应

2. 推送通知(针对FCMv1注册)

  • 请求方式:POST
  • URL:https://{namespace}.servicebus.windows.net/{hub-name}/messages
  • Headers:
    • Authorization: 有效的SharedAccessSignature
    • ServiceBusNotification-Format: fcmv1
    • ServiceBusNotification-Tags: 可选,指定目标标签(如PAIR-ID_5271),留空则推送给所有设备
  • 请求体(FCMv1标准消息结构):
{
  "message": {
    "notification": {
      "title": "测试标题",
      "body": "测试内容"
    },
    "data": {
      "key1": "value1",
      "key2": "value2"
    }
  }
}

3. 更新注册

  • 请求方式:PUT
  • URL:https://{namespace}.servicebus.windows.net/{hub-name}/registrations/{azure-registration-id}
  • Headers:
    • Authorization: 有效的SharedAccessSignature
    • Content-Type: application/json
  • 请求体:
{
  "registrationId": "{azure-registration-id}",
  "fcmV1RegistrationId": "{更新后的FCMv1令牌}",
  "platform": "fcmV1",
  "tags": ["updated-tag1", "PAIR-ID_XXX"]
}

4. 删除注册

  • 请求方式:DELETE
  • URL:https://{namespace}.servicebus.windows.net/{hub-name}/registrations/{azure-registration-id}
  • Headers:
    • Authorization: 有效的SharedAccessSignature

三、XML注册后推送失败的排查点

  1. 确认XML注册时使用的是<FcmV1RegistrationId>字段,而非旧的<RegistrationId>
  2. 检查Notification Hub的FCMv1凭证配置:需上传Firebase控制台下载的服务账号JSON文件(不是旧的服务器密钥),在Azure门户的通知中心→设置→Google (FCM v1) 页面完成配置
  3. 推送时必须指定ServiceBusNotification-Format为fcmv1,不能使用gcm或旧版fcm格式

关键注意事项

  • SharedAccessSignature的sr参数必须是编码后的完整通知中心URL:https://{namespace}.servicebus.windows.net/{hub-name}
  • 所有操作的Content-Type需与请求体格式匹配(JSON格式对应application/json)
  • FCMv1令牌格式与旧GCM/FCM令牌一致,但Azure需通过特定字段标识为v1版本

内容的提问来源于stack exchange,提问作者avi7777

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 17:37:19