FCM API v1 iOS推送通知失败求助:相同Payload在Android正常
FCM API v1 推送iOS设备报错400 INVALID_ARGUMENT 解决方法
问题分析
你遇到的400错误附带ApnsError,说明当前推送的token属于iOS设备,但请求Payload不符合苹果推送服务(APNs)的格式要求——Android设备推送无需经过APNs校验,因此相同Payload在Android上可正常运行,但iOS会触发参数无效错误。FCM API v1对跨平台推送的格式规范比旧版HTTP API更严格,必须针对iOS设备补充APNs专属配置。
解决方案
1. 补充APNs专属配置
修改请求Payload,添加apns字段明确适配APNs的推送格式,示例如下:
{ "message": { "token": "ea6LlJYZQXg:APA91bEGXaQrhuLpI...wBZw4SHOSWTutXzwjV3V2hEb9", "notification": { "title": "TEST", "body": "great match" }, "apns": { "payload": { "aps": { "alert": { "title": "TEST", "body": "great match" }, "sound": "default" // 可选,添加默认提示音 } } } } }
2. 验证Token归属
确认当前使用的token确实是iOS设备生成的FCM推送令牌,排除Android token误用于iOS推送测试的情况。
3. 简化测试Payload(可选)
若仅需测试基础推送,可直接按APNs标准格式构造推送内容,示例:
{ "message": { "token": "ea6LlJYZQXg:APA91bEGXaQrhuLpI...wBZw4SHOSWTutXzwjV3V2hEb9", "apns": { "payload": { "aps": { "alert": "great match", "title": "TEST" } } } } }
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

