Go 服务端 向 firebase Android 端 fcm 信息

问题描述:

第一个问题是: 

json input 文件格式不正确
此问题出在,没有获取 本项目最新的 密钥json文件
路径: 进入firebase 自己的项目 -> 项目设置 -> 服务账号 -> 生成新的私钥(json文件)

此json 文件用于 获取google 凭证 此凭证非 token 仅用于 在从服务器推送信息的 时候 添加至请求头。

通过刚刚的 json 文件 过去凭证,构建 request info

获取凭证:
creds, err := google.CredentialsFromJSON(ctx, token, "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/firebase.messaging")
t, errToken := creds.TokenSource.Token()

请求头 reqHeader :
= map[string]string{ "Content-Type": "application/json;charset=UTF-8", "Authorization": "Bearer " + t.AccessToken, }
第二个问题:

 "error": {

    "code": 403,

    "message": "SenderId mismatch",

    "status": "PERMISSION_DENIED",

    "details": [

      {

        "@type": "type.googleapis.com/google.firebase.fcm.v1.FcmError",

        "errorCode": "SENDER_ID_MISMATCH"

      }

    ]

  }

 

此问题在于 两个原因 (fcm_token 不正确 或 过期 、 账号没有开通权限)

一、fmc_token 不正确,  fcm_token 需要放在 请求体 中

fcm_token 获取途径 为 Android 客户端生成, 携带至后段,我们只需要拿到 客户端生成的 fcm_token 放入请求体中即可

此 fcm_token 会有过期情况,建议 仔细更细自己的 fcm_token  

请求体:

Message struct {   

     Token string `json:"token"`

   Data  struct {
Skipto string `json:"skipto"`
Url string `json:"url"`
PicSize string `json:"pic_size"`
Image string `json:"image"`
ExtraInfo string `json:"extra_info"`
} `json:"data"`
Notification struct {
Body string `json:"body"`
Title string `json:"title"`
} `json:"notification"`
} `json:"message"`

请求 url :
https://fcm.googleapis.com/v1/projects/mascash-23358/messages:send


二、权限
开通权限步骤: 项目设置 -> 用户和权限 -> 高级权限设置 -> IAM -> 找到服务账号 名称为 firebase-adminsdk 的账号
-> 点击后面的 修改权限 ->
添加权限 Firebase Admin SDK Administrator Service Agent、
         Firebase Authentication Admin、
Service Account Token Creator、
Pub/Sub Publisher
)

(额外信息)firebase fcm 发送信息流程:

客户端生成fcm_token 发送至服务器 -> 服务器生成 组织数据 发送至 firebase -> firebase 将数据推送至手机

参考:

firebase获取注册令牌文档:
https://firebase.google.com/docs/cloud-messaging/android/first-message?authuser=0#retrieve-the-current-registration-token

网友参考:
https://blog.csdn.net/ex_xyz/article/details/109314272
https://segmentfault.com/a/1190000018978817
https://blog.csdn.net/weixin_34255793/article/details/88961851

 

posted @ 2021-03-13 15:59  Black_Climber  阅读(715)  评论(0编辑  收藏  举报