【问题标题】:FCM Throwing invalid-argument for IOS notificationsFCM 为 IOS 通知抛出无效参数
【发布时间】:2021-07-07 03:41:47
【问题描述】:

我的项目之前有工作通知,我无法跟踪对我一直发送的有效负载的任何更改。我已经参考了文档并且看不到我的有效负载有任何问题。我得到的确切错误是

请求包含无效参数

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 cloud messaging Request contains an invalid argument

我通过从 firebase 控制台向设备发送测试通知来验证令牌是否正确。我认为我不应该达到 4kb 的大小限制,我发送用于测试的消息类似于“测试”或“你好”(也是 IOS 规范的问题)。我还验证了我发送的标头与 Apple 文档一致。

我无法弄清楚会导致通知在上周左右停止工作的任何差异。我知道他们当时正在工作,并且我已经查看了我的 Github 历史以验证有效负载没有改变(除了我今天在测试时对content-available 所做的更改。)

【问题讨论】:

  • 我们在我们的项目中看到了相同的行为,我们直接针对 HTTP v1 发送端点进行了测试,得到了“无效的注册令牌”错误,这当然是错误的。我们刚刚打开了一个 GitHub 问题,请随时回复或评论:github.com/firebase/firebase-admin-node/issues/1224
  • 我们现在也看到了同样的问题。等待 Gabriel 打开的 github 问题的评论
  • 他们只是评论说 FCM 后端团队发现了这个问题,并希望在“一周内”修复它。
  • 看起来问题已在 Google 方面得到解决。我确认他们再次为我的应用工作。

标签: ios firebase react-native firebase-cloud-messaging apple-push-notifications


【解决方案1】:

虽然 Google 会花时间解决此问题,但我们可以使用旧版应用服务器协议成功发送静默通知:

https://firebase.google.com/docs/cloud-messaging/send-message#send-messages-using-the-legacy-app-server-protocols

我们使用的端点是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

希望在我们等待最终修复时有所帮助。

【讨论】:

  • 谢谢。幸运的是,我的应用程序仍处于测试阶段,我可以让我的 IOS 测试人员知道通知目前已损坏。希望他们能很快解决这个问题,我不需要使用旧端点。
  • 已接受,Github 上说“最新更新:FCM 后端今天执行了快速回滚。后端应该是没有这个问题的好版本。”
猜你喜欢
  • 2018-10-31
  • 1970-01-01
  • 2019-10-15
  • 2021-01-21
  • 2016-11-05
  • 2012-05-01
  • 1970-01-01
  • 2019-08-17
  • 1970-01-01
相关资源
最近更新 更多