You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OAuth2访问令牌认证iid.googleapis.com失败,调用batchImport遇权限问题

解决FCM batchImport接口认证失败问题

问题重现

调用接口将APNs令牌转换为FCM令牌时,持续返回认证失败错误,请求命令如下:

curl -X POST "https://iid.googleapis.com/iid/v1:batchImport" \
  -H 'Authorization: Bearer ya29.c.....Sh1' \
  -H 'Content-Type: application/json' \
  -H 'access_token_auth: true' \
  -d '
{
  "application": "com.example.sample.user",
  "sandbox":false,
  "apns_tokens":[
    "6d83c......9be83f1396"
  ]
}
  '

返回错误:

{"error":"Not authenticated or unauthorized"}

已尝试操作

  • 请求权限范围包含:firebase.messaging、cloud-platform
  • 按OAuth2服务账号指南生成密钥
  • 使用google-auth-library生成访问令牌
  • 尝试过OAuth2 playground
  • 查阅过同类认证问题

解决建议

  1. 绑定服务账号IAM角色
    确保生成OAuth2令牌的服务账号已在Firebase控制台的IAM页面中分配Cloud Messaging Admin角色,仅声明权限范围不足以完成认证,必须通过IAM明确赋予操作权限。

  2. 修正令牌生成逻辑
    必须使用服务账号的JSON密钥文件生成令牌,而非用户账号的OAuth凭证。生成时要明确指定firebase.messaging权限范围,确保令牌是服务账号专属的访问凭证。

  3. 移除冗余请求头
    删除access_token_auth: true请求头,该字段在使用服务账号令牌时并非必需,可能会干扰认证流程。

  4. 核对应用包名
    确认请求体中application字段的值,与Firebase控制台注册的iOS应用包名完全一致,包括大小写、特殊字符都不能出错。

  5. 验证令牌有效性
    调用Token Info接口检查令牌的权限范围与过期时间:

    curl https://oauth2.googleapis.com/tokeninfo?access_token=ya29.c.....Sh1
    

    若返回结果的scope不包含firebase.messaging权限,说明令牌生成时的权限范围指定错误。

内容的提问来源于stack exchange,提问作者LIew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 07:07:06