为了用Go发送Firebase消息,我们需要将访问令牌放置在HTTP请求头中。
在Firebase文档中,有关于如何使用Node.JS、Python和Java检索访问令牌的示例
https://firebase.google.com/docs/cloud-messaging/auth-server
有人可以使用Go显示获取访问令牌吗?
似乎有很多关于Firebase/Google身份验证的Go包。很难理解应该使用哪一种:
发布于 2017-12-29 19:14:11
我正在开发,以添加FCM。
现在它几乎完成了,我必须编写测试和集成测试,您可以在这里检查代码:https://github.com/chemidy/firebase-admin-go/tree/fcm/messaging
我将在下周完成测试并发送公关(在ios + android +web上测试有点棘手)
发布于 2021-02-03 08:04:16
FCM httpv1使用JSON文件作为凭证。
先下载,然后把它移到你的项目中。在防火墙中下载JSON凭据
第二,做:
go get "golang.org/x/oauth2/google"然后使用此方法获取令牌。
const firebaseScope = "https://www.googleapis.com/auth/firebase.messaging"
type tokenProvider struct {
tokenSource oauth2.TokenSource
}
// newTokenProvider function to get token for fcm-send
func newTokenProvider(credentialsLocation string) (*tokenProvider, error) {
jsonKey, err := ioutil.ReadFile(credentialsLocation)
if err != nil {
return nil, errors.New("fcm: failed to read credentials file at: " + credentialsLocation)
}
cfg, err := google.JWTConfigFromJSON(jsonKey, firebaseScope)
if err != nil {
return nil, errors.New("fcm: failed to get JWT config for the firebase.messaging scope")
}
ts := cfg.TokenSource(context.Background())
return &tokenProvider{
tokenSource: ts,
}, nil
}
func (src *tokenProvider) token() (string, error) {
token, err := src.tokenSource.Token()
if err != nil {
return "", errors.New("fcm: failed to generate Bearer token")
}
return token.AccessToken, nil
}然后在FCM-Send方法中调用它:
tp, err := newTokenProvider("yourJSONFileLocation")
if err != nil {
return nil, err
}
token, err := tp.token()
if err != nil {
return nil, err
}最后,将其添加到标题中:
r.Header.Add("Authorization", "Bearer "+token)好了。
发布于 2019-11-10 23:42:07
我是被使用的头授权
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headerMap = new HashMap<String, String>();
headerMap.put("Content-Type", "application/json");
headerMap.put("Authorization", "Bearer " + key);
Log.v(TAG,"getHeaders "+headerMap);
return headerMap;
}但是发送Authorization=Bearer添加..。
如何更改当前授权:承载者
https://stackoverflow.com/questions/47431757
复制相似问题