迁移至FCMv1后Azure通知中心无法发送本地化推送通知
解决FCMv1 API本地化通知负载无效问题
你遇到的问题核心是FCMv1 API的负载结构和Legacy版本不一致,本地化相关参数必须嵌套在message.notification层级下,不能像Legacy那样直接用顶层的notification节点。
正确的本地化负载格式
把你的本地化参数放到message节点内部,调整后的负载如下:
{ "message": { "notification": { "title_loc_key": "test_title", "title_loc_args": [ "abcd title" ], "body_loc_key": "test_body", "body_loc_args": [ "Test body text" ] } } }
关键说明
- FCMv1 API要求所有通知相关配置(包括本地化参数)都必须包裹在
message节点下,这和Legacy API允许顶层直接放notification的结构完全不同。 - 移动端的多语言模板逻辑不需要修改,只要负载结构符合v1要求,
title_loc_key、title_loc_args这些参数的作用和Legacy版本一致,依然能正常匹配本地模板并替换参数。
额外注意事项
- Azure门户的「测试发送」功能对FCMv1的格式校验严格,必须严格遵循v1的结构才能通过校验。
- 代码推送时也要同步调整负载结构,确保外层有
message节点,内部嵌套notification及本地化参数,否则会返回格式错误。
内容的提问来源于stack exchange,提问作者aksvinu
相关产品推荐
相关产品推荐

