【发布时间】:2021-05-18 18:32:09
【问题描述】:
我们有一个 React Native 应用程序正在尝试使用 Firebase 云消息服务发送推送通知。我们正在使用 Insomnia 对此进行测试。
为此,我们使用了 zo0r 名为“react-native-push-notification”的包。 我们已经能够从现实生活中的苹果设备获取 iOS apn 令牌。然后我们就可以成功地向这个 URL 发送一个 POST 请求:
https://iid.googleapis.com/iid/v1:batchImport
将 apns 令牌转换为 Google 的 firebase 云消息传递平台的注册令牌。
但是,当我们尝试使用转换后的令牌发送消息时,通过向该端点发送 POST 请求:
https://fcm.googleapis.com/fcm/send
使用此 JSON 负载:
{
"direct_book_ok": true,
"to": "fTiQ5mg266o:APA91bGQN1s9sYJh9U_B6h1vuwAjpQVrPIJFnCWWsiv4PgKTCOCqLiKIdAD6ls48f-dBbnV3tOdc6NvTScXSRJYrXNHz_5QonSFraEau5jKSJPcw8HYeOb2YnutC39TlaIlKBnD3FpSx",
"notification": {
"title": "Breaking News",
"body": "New Story available."
},
"priority": "high"
}
还有这些标题:
Authorization: key=<OUR_SECRET_KEY>
and
Content-Type: application/json
Google API 响应以下错误,表明通知因“无效参数”而失败。
{
"multicast_id": 3503657462083604439,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "InvalidParameters: RpcError:INVALID_ARGUMENT"
}
]
}
我们将如何解决这个问题?我们已经尝试了 sandbox=true 和 sandbox false。
【问题讨论】:
-
您使用旧版 API 而不是 v1 是否有原因?
-
我已经尝试过更新的 api,结果相同。我很乐意使用任何一个。
-
你能在我下面的答案中测试更正的版本吗?请记住,旧版 API 和 v1 使用不同的身份验证令牌,您需要创建一个 OAuth 令牌。
-
确实,对于较新的 API,我必须生成一个不记名令牌来进行身份验证。我会试试你的解决方案。
标签: ios firebase react-native push-notification firebase-cloud-messaging