IOS 条通知的 FCM 抛出 invalid-argument
FCM Throwing invalid-argument for IOS notifications
我的项目之前有工作通知,但我无法追踪对我发送的有效负载的任何更改。我已经参考了文档,但看不到我的有效负载有任何问题。我得到的确切错误是
Request contains an invalid argument
let payload = {
token : oUser.devicetoken,
data : {
referenceid : chatid,
referencetype : 'chat',
referencename : oSender.displayname,
receiverid : userid,
type : 'message',
notificationid : res,
title : title,
body : `${oSender.displayname} : ${body}`
},
android : {
priority : 'high'
},
apns : {
payload : {
aps : {
'content-available' : 1
}
},
headers : {
'apns-push-type' : 'background',
'apns-priority' : '5',
'apns-topic' : 'llc.attebyte.partyme'
}
}
};
我当前的负载:
重新查看 Apple 通知文档后,我注意到我应该使用 content-available
。我以前一直在使用 contentAvailable: true
(并且它正在运行)。一个都不工作了。
关于这个问题已经有多个问题。这是我发现的最好的:
我通过从 firebase 控制台向设备发送测试通知来验证令牌是否正确。我不认为我应该达到 4kb 的大小限制,我发送的用于测试的消息类似于 'test' 或 'hello'(问题还在于 IOS specifi ).我还验证了我发送的 headers 与 Apple 文档一致。
我无法找出会导致通知在上周左右停止工作的任何差异。我知道他们当时正在工作,我已经检查了我的 Github 历史记录以验证有效负载没有改变(除了我今天在测试时对 content-available
所做的更改。)
虽然 Google 需要时间来解决这个问题,但我们可以使用旧版应用程序服务器协议成功发送静默通知:
我们使用的端点是 https://fcm.googleapis.com/fcm/send
。
这里可以找到消息结构(注意和现在的API有很大区别):
https://firebase.google.com/docs/cloud-messaging/http-server-ref
这里是如何授权请求:
https://firebase.google.com/docs/cloud-messaging/auth-server#authorize-http-requests
希望它在我们等待最终修复时有所帮助。
我的项目之前有工作通知,但我无法追踪对我发送的有效负载的任何更改。我已经参考了文档,但看不到我的有效负载有任何问题。我得到的确切错误是
Request contains an invalid argument
let payload = {
token : oUser.devicetoken,
data : {
referenceid : chatid,
referencetype : 'chat',
referencename : oSender.displayname,
receiverid : userid,
type : 'message',
notificationid : res,
title : title,
body : `${oSender.displayname} : ${body}`
},
android : {
priority : 'high'
},
apns : {
payload : {
aps : {
'content-available' : 1
}
},
headers : {
'apns-push-type' : 'background',
'apns-priority' : '5',
'apns-topic' : 'llc.attebyte.partyme'
}
}
};
我当前的负载:
重新查看 Apple 通知文档后,我注意到我应该使用 content-available
。我以前一直在使用 contentAvailable: true
(并且它正在运行)。一个都不工作了。
关于这个问题已经有多个问题。这是我发现的最好的:
我通过从 firebase 控制台向设备发送测试通知来验证令牌是否正确。我不认为我应该达到 4kb 的大小限制,我发送的用于测试的消息类似于 'test' 或 'hello'(问题还在于 IOS specifi ).我还验证了我发送的 headers 与 Apple 文档一致。
我无法找出会导致通知在上周左右停止工作的任何差异。我知道他们当时正在工作,我已经检查了我的 Github 历史记录以验证有效负载没有改变(除了我今天在测试时对 content-available
所做的更改。)
虽然 Google 需要时间来解决这个问题,但我们可以使用旧版应用程序服务器协议成功发送静默通知:
我们使用的端点是 https://fcm.googleapis.com/fcm/send
。
这里可以找到消息结构(注意和现在的API有很大区别):
https://firebase.google.com/docs/cloud-messaging/http-server-ref
这里是如何授权请求:
https://firebase.google.com/docs/cloud-messaging/auth-server#authorize-http-requests
希望它在我们等待最终修复时有所帮助。