我正在尝试测试将Firebase用于使用邮递员的推送通知的应用程序。
我正在专门测试Http v1 Api,并寻找如何授权请求。
我需要做的就是让OAuth2令牌在Postman中使用,尽管我不确定如何使用,但我应该可以在OAuth 2.0操场上使用它。
我有privatkey.json
从firebase控制台下载的文件,我只需要知道如何使用它来获取将添加为POST请求的承载授权标头的令牌
通过在OAuth2游乐场中请求以下作用域,我能够通过FCM v1 HTTP API发送消息:
email, https://www.googleapis.com/auth/firebase.messaging
授权后,我将授权代码交换为刷新和访问令牌。
然后,我将得到的访问令牌传递给使用FCM的呼叫:
curl -X POST -H "Authorization: Bearer MY_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"message":{ "notification": { "title": "FCM Message", "body": "This is an FCM Message", }, "token": "MY_DEVICE_TOKEN" } }' https://fcm.googleapis.com/v1/projects/MY_PROJECT_ID/messages:send
在上述CURL请求中,将以下占位符替换为您的相关值:
MY_PROJECT_ID
是Firebase项目ID,可从Firebase控制台的项目设置页面获取
MY_DEVICE_TOKEN
是您要将消息发送到的设备的注册令牌。对于Web客户端,请参阅如何获取当前的注册令牌。
MY_ACCESS_TOKEN
是您使用上述步骤从OAuth2游乐场获得的OAuth2访问令牌。
由于仅调用OAuth2令牌,因此有关认证FCM v1请求的FCM文档可能会造成混淆。实际上,它首先通过调用来生成自签名的JWT(JSON Web令牌)new google.auth.JWT(...)
。这涉及下载私钥,并通过JWT库在本地生成JWT。
然后将自签名的JWT传递到jwtClient.authorize(...)
,从而返回包括在内的令牌access_token
。后者是OAuth2访问令牌,与上面获得的令牌类似。