我正在将 FCM 实现从旧版 API 迁移到新的 HTTP v1 API。
我已经使用 firebase-adminsdk 创建了我的服务帐户
我还设法使用 HTTP v1 将推送通知发送到使用从服务帐户 json 生成的新 JWT 身份验证令牌的设备组令牌。
我的问题是从旧版 API 管理设备组时收到 401 未经授权的错误
https://firebase.google.com/docs/cloud-messaging/android/device-group
https://fcm.googleapis.com/fcm/notification
Content-Type:application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID
{
"operation": "create",
"notification_key_name": "appUser-Chris",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"cR1rjyj4_Kc:APA91bGusqbypSuMdsh7jSNrW4nzsM...",
... ]
Run Code Online (Sandbox Code Playgroud)
从文档中可以看出,他们正在使用新的 JWT 令牌来授权管理设备组,而不是旧的服务器密钥。(服务器密钥也将于明年停用)。我的问题是我在这里到底错过了什么?具体如何使用新服务帐户来管理设备组?
尝试使用 firebase-admin-sdk json 生成 JWT 令牌以在设备组 API 中使用。返回 401
有关 FCM 设备组的详细信息可以在此处找到:https ://firebase.google.com/docs/cloud-messaging/android/device-group#creating_a_device_group
以下是显示问题的示例请求和后续响应。
要求:
POST /fcm/notification HTTP/1.1
Host: fcm.googleapis.com
Content-length: 194
Project_id: XXXXREMOVEDXXXX
Content-type: application/json
Authorization: Bearer ya29.removed:removed
{
"operation": "create",
"notification_key_name": "test-group", …Run Code Online (Sandbox Code Playgroud)