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

无谷歌库情况下GCP OAuth集成FCM HTTP V1方案咨询

无需谷歌库实现FCM HTTP V1版本的OAuth集成

步骤1:获取服务账号密钥JSON文件

  • 进入Firebase控制台的项目设置→服务账号页面,生成并下载JSON格式的服务账号密钥。该文件包含client_email、private_key等核心凭据,是后续生成OAuth令牌的关键。

步骤2:手动构造并签名JWT(JSON Web Token)

要向谷歌OAuth服务器申请访问令牌,需自行完成JWT的构造与签名:

  1. 构造JWT头部:固定使用RS256算法,格式如下
    {
      "alg": "RS256",
      "typ": "JWT"
    }
    
  2. 构造JWT载荷:必须包含以下字段
    • iss:服务账号JSON文件中的client_email
    • scope:固定值为https://www.googleapis.com/auth/firebase.messaging
    • aud:固定值为https://oauth2.googleapis.com/token
    • exp:过期时间戳(当前时间+3600秒,最长有效期1小时)
    • iat:签发时间戳(当前时间)
  3. 签名JWT:将Base64URL编码后的头部与载荷用.拼接,再用服务账号的private_key通过RS256算法签名,最终得到完整的JWT字符串。注意Base64URL编码要移除多余的填充字符=。

步骤3:请求OAuth访问令牌

向https://oauth2.googleapis.com/token发送POST请求:

  • 请求头设置Content-Type: application/x-www-form-urlencoded
  • 请求参数:
    • grant_type:固定为urn:ietf:params:oauth:grant-type:jwt-bearer
    • assertion:上一步生成的完整JWT字符串
      返回结果中的access_token就是调用FCM接口所需的令牌,有效期1小时,过期后需重新生成。

步骤4:调用FCM HTTP V1发送消息

向https://fcm.googleapis.com/v1/projects/[你的项目ID]/messages:send发送POST请求:

  • 请求头必须包含:
    • Authorization: Bearer [获取到的access_token]
    • Content-Type: application/json
  • 请求体按照FCM HTTP V1规范构造,示例如下:
    {
      "message": {
        "token": "目标设备的FCM令牌",
        "notification": {
          "title": "测试通知",
          "body": "这是一条无谷歌库集成的FCM测试消息"
        }
      }
    }
    

注意事项

  • 务必妥善保管服务账号密钥,避免泄露导致项目被恶意操作
  • 建议在每次调用FCM前检查令牌是否过期,过期则重新执行步骤2-3生成新令牌
  • JWT的签名过程必须严格遵循RS256标准,否则会被谷歌服务器拒绝

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:39:54