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

Azure通知中心FCMv1模板推送无Payload问题排查与解决

问题:Azure通知中心发送FCM V1模板通知无Payload?

背景

  • 2021年起使用com.microsoft.azure:notification-hubs-android-sdk-fcm:1.1.4,registerTemplate可正常创建GcmTemplateRegistrationDescription与GcmRegistrationId
  • 为支持FcmV1TemplateRegistration和FcmV1RegistrationId,升级至com.microsoft.azure:notification-hubs-android-sdk:2.0.0,调用registerTemplate已成功在Azure中心生成FcmV1TemplateRegistration(设备regid通过FirebaseMessaging.getInstance().getToken()获取)

注册模板代码

String messageTemplate = "{\"message\":{\"android\":{\"data\":{\"msgtext\":\"$(msgtext)\",\"msgsndr\":\"$(msgsndr)\"}}}}";
String RegistrationTagTopic = "5050";
mobile_RegistrationId = hub.registerTemplate(regid, "CAREV1", messageTemplate, RegistrationTagTopic).getRegistrationId();

注册返回的Notification Hub结构

<ETag>5</ETag>
<ExpirationTime>2124-06-12T05:55:24.1941413Z</ExpirationTime>
<RegistrationId>2837404...516-2</RegistrationId>
<Tags>5050</Tags>
<FcmV1RegistrationId>eZMPxd2pQBi...Uh</FcmV1RegistrationId>
<BodyTemplate><![CDATA[{"message":{"android":{"data":{"msgtext":"$(msgtext)","msgsndr":"$(msgsndr)"}}}}]]></BodyTemplate>
<TemplateName>CAREV1</TemplateName>
</FcmV1TemplateRegistrationDescription>

注:FCM V1模板格式要求严格,非{"message":{"android":{"data":{...}}}}格式会导致注册异常

发送模板通知的REST API配置

ServiceBusNotification-Format = "template"
ServiceBusNotification-Tags = "5050"
ContentType = "application/json;charset=utf-8."
Method = "POST"
URI = "https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/?api-version=2015-01"

发送的JSON示例:

{"message":{"android":{"data":{"msgtext":"My short message","msgsndr":"ADMIN"}}}}

问题现象

  • 设备收到通知但无Payload
  • REST API的&test模式显示发送成功,识别为fcmV1Template,但结果不符合预期
  • 直接通过FCM/JWT发送如下格式JSON至5050时,通知与Payload正常:
{"message":{"topic":"5050","data":{"msgtext":"My short message","msgsndr":"ADMIN"},"android":{"priority":"high"},"fcm_options":{"analytics_label":"xyz"}}}

解决方法(2024年6月18日17:12 NZST)

无需修改Azure通知中心REST API的JSON结构,通知中心会自动识别设备的注册类型(已升级应用为FcmV1TemplateRegistration,未升级为GcmTemplateRegistration),服务器只需发送模板中Data分支对应的JSON即可,示例日志验证此方法有效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:23:11