如何获取Firebasedynamic链接分析Rest API的正确访问令牌(NodeJS)
我用serveracceskey得到的access_token有问题。 这是我在NodeJS中的代码:
const admin = require('firebase-admin'); var request = require("request"); const serviceAccount = require('./serverAccountKey.json'); const credential = admin.credential.cert(serviceAccount); credential.getAccessToken().then((accessTokenInfo) => { const accessToken = accessTokenInfo.access_token; const expirationTime = accessTokenInfo.expires_in; console.log("accessToken " + accessToken ); console.log("expirationTime " +expirationTime); var s = "Bearer " + accessToken; request({ headers:{ 'Authorization': s }, uri:"https://firebasedynamiclinks.googleapis.com/v1/SHORTLINK/linkStats?durationDays=7", method: "GET", }, function(error, response, body) { console.log(body); }); });
结果如下所示:
{ "error": { "code": 403, "message": "Request had insufficient authentication scopes.", "status": "PERMISSION_DENIED" } }
我究竟做错了什么 ? 我也testing邮差的链接。 有些东西是错的,我读了所有的firebase Rest API Doc。
Admin SDK使用一组特定的范围创build令牌: https : //github.com/firebase/firebase-admin-node/blob/master/src/auth/credential.ts#L272
显然,dynamic链接API在令牌中需要额外的OAuth2范围。 这个用例最好使用一些OAuth2库。 如果您使用的是Java或Python,Google Cloud会为您提供相应的库。
我用一个有用的GitHub用户解决了这个问题。 如果有人得到同样的问题,请按此链接将有所帮助。 https://github.com/firebase/firebase-admin-node/issues/111
- 使用Firebase进行NodeJS身份validation
- Firebase Node.JS Admin SDK发送validation邮件
- 如何在NodeJS中创build一个新的Firebase Admin SDK服务器以与LinkedIn进行身份validation?
- Firebase云端函数数据库触发器“onCreate不是函数”
- 用于Firebase Admin SDK的Node.js身份validation服务器 – JWTvalidation问题
- pipe理员firebase身份validation和节点js
- 强制令牌刷新,但令牌仍然过期?
- pipe理FCM设备组服务器端
- firebase-admin WebSocket错误