我没有使用 Firebase 的经验,我正在尝试测试通过 FCM 向我正在开发的 Android 应用发送静默推送通知。看来我只能从 Firebase 管理员发送定期通知(我已经能够做到),但不能发送我正在尝试测试的静默通知。
我正在尝试使用 cURL 以这种方式访问 FCM 的 HTTP V1 API:
curl -H "Content-type: application/json" -H "Authorization: Bearer <OAuth id>" -X POST -d '{ "data":{ "foo":"1", "bar":"2" }, "to":"<token>", "android":{ "priority":"high" }}' https://fcm.googleapis.com/v1/projects/{project name}/messages:send
token:我通过测试设备上的 Android 应用程序获得的 FCM 注册令牌似乎是正确的。
OAuth id:我从
https://console.cloud.google.com/iam-admin/serviceaccounts?project={project name}&supportedpurview=project
获得的“OAuth 2 客户端 ID”,我不确定是否应该使用它。
UNAUTHENTICATED
作为回复。
{
"error": {
"code": 401,
"message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"status": "UNAUTHENTICATED"
}
}
是否有一种直接的方法来测试静默推送通知,或者它应该如此复杂?如果是这样,我在这里缺少什么?
根据响应本身,发送 FCM 通知的请求包含无效的 OAuth 2.0 访问令牌。要生成有效的 OAuth 2.0 访问令牌,请按照本文档中给出的说明进行操作。
出于测试目的,您可以尝试使用以下选项生成 OAuth 2.0 访问令牌:
使用 Google Developers OAuth 2.0 Playground
使用 Firebase 云消息传递 Node.js 快速入门项目
请注意,访问令牌的常见前缀是ya29。
授权:承载ya29.ElqKBGN2Ri_Uz...HnS_uNreA