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

使用Access Token授权FCM v1 API遇401错误,如何解决?

解决FCM v1 API调用401未认证错误

问题根源

你用的是Google登录返回的用户级Access Token,这个令牌仅用于验证用户身份、访问用户授权的个人Google服务(比如Drive、Gmail),没有权限调用FCM的服务端API。FCM v1 API要求的是服务账号级别的认证令牌,和你获取的用户令牌完全不是一回事。另外你请求头里的Bearer "MY Access Token"多了引号,这也是导致认证失败的小问题。

正确的解决方法

方法一:用gcloud命令行快速获取测试令牌(适合Postman临时测试)

  1. 安装并初始化gcloud CLI,关联你的Firebase项目
  2. 执行命令获取FCM专用的访问令牌:
gcloud auth application-default print-access-token
  1. 把令牌放到Postman请求头,格式注意不要加引号:
Authorization: Bearer 你获取到的令牌内容

方法二:用服务账号密钥生成长期可用令牌(适合代码集成)

  1. 打开Firebase控制台 → 项目设置 → 服务账号 → 点击「生成新的私钥」,下载JSON格式的密钥文件
  2. 用该密钥生成RS256签名的JWT,Payload需包含以下字段:
{
  "iss": "密钥文件里的client_email",
  "sub": "密钥文件里的client_email",
  "aud": "https://fcm.googleapis.com/",
  "exp": 当前时间戳 + 3600(有效期1小时),
  "iat": 当前时间戳
}
  1. 将生成的JWT放入请求头:Authorization: Bearer 生成的JWT令牌

额外注意事项

  • 你之前使用DEVICE TOKEN的方式是正确的,保持请求体里的"token":"DEVICE TOKEN"配置不变
  • 确保你的服务账号拥有「Cloud Messaging Admin」权限,默认生成的服务账号已自带该权限,若缺失可到IAM控制台补充

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 14:56:19