类型错误:无法读取未定义的属性“redirect_uris”

2024-01-22

我想编写一个应用程序来处理我的一些以某种方式标记的 Gmail 电子邮件。

示例代码here https://github.com/googleapis/google-api-nodejs-client/blob/master/samples/gmail/list.js给了我代码的起点(我使用 Promise 而不是 async wait 重写了代码):

'use strict';

const path = require('path');
const { google } = require('googleapis');
const { authenticate } = require('@google-cloud/local-auth');

authenticate({
    keyfilePath: path.join(__dirname, 'key.json'),
    scopes: [
        'https://www.googleapis.com/auth/gmail.readonly',
    ],
}).then(auth => {
    google.options({ auth })

    gmail.users.messages.list({
        userId: "me",
    }).then((res) => {
        console.log(res.data)
    }).catch(err => {
        console.log(err)
    })
}).catch(err => {
    console.log(err);
})

以下是我到目前为止所采取的步骤:

  • 创建了一个谷歌云项目
  • 创建具有所有者角色的服务帐户
  • 从服务帐户下载密钥文件并将其复制到我的代码目录中,如下所示key.json
  • 运行代码:
GOOGLE_APPLICATION_CREDENTIALS="$(pwd)/key.json" node index.js

这是我收到的错误:

TypeError: Cannot read property 'redirect_uris' of undefined
    at authenticate (/home/user/dev/gmail-processor/node_modules/@google-cloud/local-auth/build/src/index.js:46:15)
    at Object.<anonymous> (/home/user/dev/gmail-processor/index.js:7:1)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

看起来它需要带有重定向 url 的 oauth 凭据。另外,我导出似乎是多余的GOOGLE_APPLICATION_CREDENTIALS当我包括keyfilePath当我打电话时authenticate。我做错了什么,如何让这段代码成功执行?


我通过使用以下方法解决了这个问题:

const auth = new google.auth.GoogleAuth({
  keyFile: path.join(__dirname, 'key.json'),
  scopes: ['https://www.googleapis.com/auth/gmail.readonly'],
});

代替:

const auth = await authenticate({
  keyfilePath: path.join(__dirname, 'key.json'),
  scopes: ['https://www.googleapis.com/auth/gmail.readonly'],
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型错误:无法读取未定义的属性“redirect_uris” 的相关文章

  • 如何识别图形线条

    我有以下格式的路径的 x y 数据 示例仅用于说明 seq p1 p2 0 20 2 3 1 20 2 4 2 20 4 4 3 22 5 5 4 22 5 6 5 23 6 2 6 23 6 3 7 23 6 4 每条路径都有多个点 它们
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att
  • 将 Hbase 与 PHP 集成 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经安装了 Hbase 现在我正在寻找一些 PHP 库来将 hbase 与 PHP 集成 我尝试了 2 个库 第一个是我尝试与 th
  • SimpleXML 返回空数组

    我正在尝试使用 Google Maps API 和 PHP SimpleXML 获取城市的纬度和经度 我尝试这样做 xml simplexml load file http maps googleapis com maps api geoc
  • R - 加速近似日期匹配。 idata.frame?

    我正在努力有效地执行两个数据帧之间的 关闭 日期匹配 这个问题探索了一个解决方案 使用idata frame来自plyr包 但我也对其他建议的解决方案感到非常满意 这是两个数据框的非常简单的版本 sampleticker lt data f
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T
  • CUDA 添加矩阵的行

    我试图将 4800x9600 矩阵的行加在一起 得到一个 1x9600 的矩阵 我所做的是将 4800x9600 分成 9 600 个矩阵 每个矩阵长度为 4800 然后我对 4800 个元素进行缩减 问题是 这真的很慢 有人有什么建议吗
  • 声明 for 循环变量时 &mut 会做什么吗?

    考虑以下 愚蠢的 程序 fn main let mut array mut 1u8 2u8 3u8 for mut value in array 它编译并运行正常 尽管如预期的那样警告未使用的变量 不必要的可变性 但有什么作用 mut做在f
  • 如何使用placement new重新初始化该字段?

    我的课程包含字段 private OrderUpdate curOrderUpdate 我一遍又一遍地使用它 经常需要重新初始化 for int i 0 i lt entries size i auto entry entries i ne
  • [GoF]-ConcreteSubject 可以覆盖通知方法吗?

    我正在模拟一种情况 其中存在 通知框 观察者 list1 list2 list3 这个科目 现在我会制作一张图表 其中使用观察者模式描述每个列表实现不同类型的notify 这一事实 例如 列表状态的某些变化只需要按照某些标准通知给某些观察者
  • 拉斐尔路径交叉点不起作用

    我对拉斐尔和 pathIntersection method JSFiddle 示例 http jsfiddle net t6gWt 2 您可以看到有两条线都与曲线相交 但当我使用 pathIntersection method 有一个未解
  • 为什么匹配模板类上的部分类模板特化与没有模板匹配的另一个部分特化不明确?

    这个问题可能很难用标题中的句子来描述 但这里有一个最小的例子 include
  • 无法完成添加 Android 证书的构建

    我刚刚完成构建我的应用程序 我发送了一个没有证书的构建版本 它工作了 现在添加一个 android 证书 它在我的代号 one 仪表板上报告构建错误 如有帮助 将不胜感激 失败 构建失败并出现异常 出了什么问题 执行 任务失败 transf
  • 在引导程序中以编程方式更改选项卡窗格选项卡

    我使用的选项卡窗格定义为 ul class nav nav tabs li a href personal Personal Information a li li class active a href contact Contact a
  • 对齐与未对齐 x86 SIMD 指令之间的选择

    SIMD指令一般有两种类型 A 使用对齐的内存地址 如果地址未在操作数大小边界上对齐 则会引发一般保护 GP 异常 movaps xmm0 xmmword ptr rax vmovaps ymm0 ymmword ptr rax vmova
  • jQuery appendTo(), json 在 IE 6,7,8 中不起作用

    我这两天绞尽脑汁想找到解决办法 我使用 jQuery ajax 从数据库中获取值 以便在另一个框发生更改时更新一个框 php 脚本从数据库中获取值 然后输出 json 它在 FF 中工作正常 但在所有版本的 IE 中 选择框都不会更新 我已
  • 在 Navicat Premium 中连接到 LocalDB 服务器

    Recently I installed LocalDb Serer on my laptop I am trying to establish a connection between Navicat and LocalDB server
  • 使用 numpy 加速 for 循环

    下一个 for 循环如何使用 numpy 获得加速 我想这里可以使用一些奇特的索引技巧 但我不知道是哪一个 这里可以使用 einsum 吗 a 0 for i in range len b a numpy mean C d e f b i
  • Ada 中的 In/Out 与 Out

    我有一个简短的艾达问题 如果我有一个程序may写出一个变量 或者我might不用管它 它应该是一个Out参数或In Out范围 我想这可以归结为一个问题 如果调用者调用参数如下的过程 它会看到什么Out但该过程不触及参数 它看到相同的值吗
  • 在 Perl 中查找数组的大小

    我似乎遇到过几种不同的方法来查找数组的大小 这三种方法有什么区别呢 my arr 2 print scalar arr First way to print array size print arr Second way to print

随机推荐

  • 安全套接字连接的最佳实践

    安全套接字连接 无 SSL 的最佳实践是什么 我将通过 TCP 套接字连接移动敏感数据 登录名 密码 帐户 并想知道是否有一种好的 快速的加密 解密方法并避免恶意注入 如果您对 SSL 过敏 请使用 SSH 但原理是相同的 密钥通过非对称算
  • options 参数中可选参数的默认值

    我想传递一个对象作为类构造函数的参数 选项对象的某些键是可选的 在打字稿中是否有更好 更惯用的方法来完成以下任务 谢谢 class Car color number numberOfWheels number constructor opt
  • Python Seaborn 图表 - 阴影区域

    抱歉我的菜鸟问题 但是如何在seaborn图表的上下线之间添加阴影区域 颜色 我正在处理的主要代码如下 plt figure figsize 18 10 sns set style darkgrid palette sns color pa
  • 如何修复“未找到初始内容”错误?

    在客户端的一些代码上使用 Flash Builder 4 6 单击调试 也尝试运行 并收到此错误 Process terminated unexpectedly initial content not found Launch comman
  • 如何在使用通配符的目录指令中使用 apache2 mod_rewrite?

    我编写了一个 Web 应用程序 在托管该 Web 应用程序的专用服务器下运行 此 Web 应用程序的实例可在不同的域中使用 每个域都有自己的 Web 应用程序文件副本 允许根据需要进行自定义 我在 Debian Squeeze 下运行 Ap
  • Google Sign in API - 获取照片 Uri 为空

    我使用 Google Sign in API 来请求用户个人资料 例如用户显示名称 头像照片 我有null值 GoogleSignInAccount getPhotoUrl 获取值 GoogleSignInAccount getDispla
  • 检测 PHP 代码块的超时

    如果 PHP 中的代码块花费太长时间 有没有办法可以中止该代码块 也许是这样的 Set the max time to 2 seconds time new TimeOut 2 time gt startTime sleep 3 time
  • React 无法更新状态

    I can t figure why I can t update my state see setCoords The request returns with a 200 code and the elements I m trying
  • 如何列出詹金斯管道脚本中目录中的所有目录

    我想从詹金斯管道脚本中获取特定目录中存在的所有目录 我们应该怎么做 如果您想要特定目录下的所有目录的列表 例如mydir使用 Jenkins Utility 插件你可以这样做 假设mydir位于当前目录下 dir mydir def fil
  • Node.js、socket.io https 连接

    服务器端代码 var io require socket io listen 8150 io sockets on connection function socket 客户端代码 var socketIO io 8150 socketIO
  • 无法在类库包中的 Entity Framework 7 beta4 上运行迁移

    我无法在类库包中执行迁移命令 我的 dnvm 版本是 来自 global json sdk version 1 0 0 beta5 12021 我正在将其导入到我的项目 JSON 中 dependencies EntityFramework
  • TypeScript 映射类型:获取数组的元素类型

    假设有一个容器类型 其数组属性为未知 生成类型T1 T2等 短T interface MultiContainer Item1 T1 Item2 T2 是否可以使用派生以下类型映射类型 https www typescriptlang or
  • Android SQLite 数据库单元测试

    我是 Android 应用程序开发的新手 我刚刚制作了一个笔记应用程序 我想对数据库的 insertNote readNote 和 updateNote 方法进行单元测试 我该怎么办 这是我的数据库的代码 谢谢 public class D
  • 迁移文件中 Django 的“primary_key”字段中的“serialize=False”是什么意思?

    我找不到原因serialize False在 Django 文档或源代码中的主键字段上设置 有什么特殊原因要设置吗 Thanks Azd325 听起来很简单 该字段不会成为序列化对象的一部分 不过 我猜您的问题与正在迁移的模型有关 并且生成
  • 如何将 IntelliJ IDEA 随机开放端口仅绑定到本地主机?

    当我在 macOS 上运行 IntelliJ IDEA 2021 1 2 终极版或社区版 时 我观察到所有网络接口 eth0 lo 上打开了 3 个随机端口 一个随机端口由 idea 进程打开 另外两个端口由 IntelliJ IDEA 启
  • AngularJS 路由控制器未重新加载

    我有一个非常简单的 AngularJS 应用程序 其中有两条路线 search results 当我从一条路线导航到另一条路线时 一切都按我的预期进行 获取所需的任何资源并完美显示内容 问题是 当我从一条路线导航到同一条路线 即 resul
  • 扫描附近的蓝牙设备

    如果手机打开了蓝牙 应用程序可以读取附近可发现设备的 ID 列表吗 如果是这样 哪个函数返回这样的列表 Thanks 看一看here http developer android com guide topics wireless blue
  • htaccess 替换查询和重定向中的字符

    我需要将查询字符串中的 替换为 而不是重定向 site com abc def to site com search php q abc def 我试过这个 RewriteRule search php q 1 2 R 301 L 以下两条
  • android项目的Maven编译错误“错误:包R不存在”

    我正在尝试使用 Android 应用程序建立一个 MAVEN 项目 我有这个pom文件
  • 类型错误:无法读取未定义的属性“redirect_uris”

    我想编写一个应用程序来处理我的一些以某种方式标记的 Gmail 电子邮件 示例代码here https github com googleapis google api nodejs client blob master samples g