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
相关产品推荐
相关产品推荐

