如何获取 Firebase 动态链接分析 Rest API (NodeJS) 的正确访问令牌

2024-01-14

我通过 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"
    }
}

我究竟做错了什么 ?我也在 Postman 中测试了链接。出了点问题,我阅读了所有 firebase Rest API 文档。


Admin SDK 创建具有一组特定范围的令牌:https://github.com/firebase/firebase-admin-node/blob/master/src/auth/credential.ts#L272 https://github.com/firebase/firebase-admin-node/blob/master/src/auth/credential.ts#L272

显然,动态链接 API 需要令牌中包含额外的 OAuth2 范围。对于此用例,您最好使用一些 OAuth2 库。如果您使用的是 Java 或 Python,Google Cloud 会提供可以为您处理此问题的库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 Firebase 动态链接分析 Rest API (NodeJS) 的正确访问令牌 的相关文章

随机推荐

  • Highchart 在 x 轴上显示字符串

    我试图将我的 x 轴值显示为系列的 highcharts 上的字符串 但得到 0 1 2 这是 xaxis 数组索引位置 如何在 higcharts 上显示格式化为字符串的 xaxis 值 这是我所拥有的 Highcharts chart
  • 最后命名的参数不是函数或数组?

    这个问题是关于 vararg 函数 以及省略号之前的最后一个命名参数 void f Type paramN va list ap va start ap paramN va end ap 我在阅读 C 标准时 发现了以下限制va start
  • Django 内联-允许添加禁用编辑

    你好 我在阅读以下问题后提出这个问题 问题 1 https stackoverflow com q 2951781 1095090 and 问题2 https stackoverflow com q 9504371 Question 1 没
  • 查看 pandas 系列的每一行中是否有项目

    我有一个包含以下数据的 pandas 系列 2015 07 24 Business Corporate 2015 07 24 Business Corporate 2015 07 08 Commentary World 2015 07 05
  • 具有静态成员的静态结构

    今天 我发现自己创建了一个 2 个 int 的静态数组 并且由于 C 不是 C 11 中不允许其内联初始化 因此我恢复使用 struct 类型的静态变量 class MyWidget static const struct Margin c
  • Nest.Js 不接受任何更改

    我尝试在里面创建一个新方法应用程序控制器但它没有反映变化 我什至尝试更改默认值获取你好 方法 但它正在输出 你好世界 这怎么可能 Insomnia 应用程序控制器 应用服务 Update npm run build npm run star
  • 将值从 servlet 传递到 html [重复]

    这个问题在这里已经有答案了 我有一个 Servlet 它处理来自 Web 的一些内容并生成一个字符串值 我需要在 html 页面的表标记内显示此字符串值 如何使用 setAttribute 方法和 getrequestdispatcher
  • 异常:将数据发布到 Google Pub/Sub 时出现 503 无法连接到所有地址

    我正在使用 Google Pub Sub 教程中的示例代码 当尝试发布消息时 抛出异常 503无法连接到所有地址 我向服务帐户授予了 Pub Sub 发布者角色 直到前天一切都运转良好 从控制台或 gcloud 命令发布消息时没有问题 Cl
  • Azure架构设计

    我是 Azure 新手 对 blob 存储有点困惑 我需要客户端通过 FTP SFTP 访问来推送和拉取文件 XML CSV EDI 等 推送的文件由 net 应用程序读入并写入数据库 据我了解 我们将使用 VM 角色来创建 FTP SFT
  • 将文件插入 mysql Blob

    我尝试在 blob 字段上插入 Open Office 文档 为此我尝试 INSERT INTO my table stamp docFile VALUES NOW LOAD FILE tmp my file odt 这在 Windows
  • 如何循环使用多个关键帧定义的 CSS 动画?

    问题 我有两个 css 关键帧动画 它们在单个元素上运行 fade bg animation name fade bg 1 fade bg 2 animation delay 0 6s animation iteration count i
  • 在 Java 中创建 JSONArray

    我如何创建 JSONArray 因为创建 JSONObject 非常简单 JSONObject j new JSONObject j put key value 现在我可以在 JSONObject 中放入另一个字符串 或者 JSONObje
  • LaTeX:在页边空白处排版章节号

    我正在尝试用 LaTeX 排版一些东西 我想知道我做得是否正确 基本思想是节号挂在左边距 对于章节标题 该数字采用标题的高度 2 行 对于节标题 该数字采用 1 行 并且与小节的标题高度相同 并且与标题的顶部对齐 请参阅下图以了解我在说什么
  • Capistrano 和环境变量

    我已经改用配置的环境变量 http 12factor net config它工作得很好 除非我必须使用 capistrano 部署或运行 任务 Capistrano 3 似乎执行每个带有前缀的命令 usr bin env这会删除我设置的所有
  • 如果我将代码添加到(不相关的)打印部分,“用于测量执行周期的双线程计数器模型”会更改输出

    标题有点晦涩难懂 解释如下 我有 2 线程模型 1 个线程正在繁忙循环内递增变量 另一个线程读取计数器t1 进行测量 再次读取计数器t2并将差异存储在数组中以供将来打印 你为什么不使用rdtscp 它正在序列化 并且已经作为指令内置在硬件中
  • Android - 将 URL 中的图像保存到 SD 卡上

    我想将 URL 中的图像保存到 SD 卡 以供将来使用 然后从 SD 卡加载该图像以将其用作 Google 地图的可绘制叠加层 这是该函数的保存部分 SAVE TO FILE String filepath Environment getE
  • usort() 排序算法如何工作?

    我有一个 usort 示例 我添加了一些 echo 语句来查看代码如何工作
  • 网络RTC。不显示视频

    我决定研究WebRTC 但不展示视频 请帮助 我究竟做错了什么 使用 Chrome 我的代码
  • 在 JavaScript 事件代码中使用匿名函数而不是命名函数进行回调和参数有什么好处?

    我对 JavaScript 还很陌生 我了解该语言的许多概念 我一直在阅读原型继承模型 并且我正在通过越来越多的交互式前端内容来磨练我的口哨 这是一种有趣的语言 但我总是对回调意大利面条有点反感 这是许多重要交互模型的典型特征 我一直觉得奇
  • 如何获取 Firebase 动态链接分析 Rest API (NodeJS) 的正确访问令牌

    我通过 serveracceskey 获得的 access token 有问题 这是我在 NodeJS 中的代码 const admin require firebase admin var request require request