Azure通知中心从GCM迁移至FCMv1 REST API求助:求JSON文档及示例
Azure Notification Hub FCMv1迁移:JSON格式REST API操作指南及问题排查
一、你的curl请求失败的核心原因
你提交的curl请求里,JSON字段误用了registrationId,FCMv1格式的注册需要使用**fcmV1RegistrationId**作为字段名。同时要确认两个细节:
- URL中的
{ourNotificationHub}和{customHubName}已替换为实际的通知中心命名空间与Hub名称 - 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: 有效的SharedAccessSignatureContent-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: 有效的SharedAccessSignatureServiceBusNotification-Format:fcmv1ServiceBusNotification-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: 有效的SharedAccessSignatureContent-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注册后推送失败的排查点
- 确认XML注册时使用的是
<FcmV1RegistrationId>字段,而非旧的<RegistrationId> - 检查Notification Hub的FCMv1凭证配置:需上传Firebase控制台下载的服务账号JSON文件(不是旧的服务器密钥),在Azure门户的通知中心→设置→Google (FCM v1) 页面完成配置
- 推送时必须指定
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
相关产品推荐
相关产品推荐

