尝试实现 NodeJS Gmail API 示例

Posted

技术标签:

【中文标题】尝试实现 NodeJS Gmail API 示例【英文标题】:Trying to implement NodeJS Gmail API example 【发布时间】:2021-01-16 13:50:55 【问题描述】:

我正在尝试让 NodeJs Gmail API 快速入门示例正常工作。起初,我能够让示例运行并收到如下所示的输出。

INBOX
SPAM
ETC ...

之后我做了一些更改,以便我可以看到消息等。一旦发生这种情况,我在提示后开始收到以下错误(它之前工作过)。

Authorize this app by visiting this url: https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify&response_type=code&client_id=***&redirect_uri=***
Enter the code from that page here:

我收到此错误代码

Error retrieving access token GaxiosError: invalid_grant
    at Gaxios.<anonymous> (C:\***\node_modules\gaxios\build\src\gaxios.js:73:27)
    at Generator.next (<anonymous>)
    at fulfilled (C:\***\node_modules\gaxios\build\src\gaxios.js:16:58)
    at processTicksAndRejections (internal/process/task_queues.js:97:5) 
  response: 
    config: 
      method: 'POST',
      url: 'https://oauth2.googleapis.com/token',
      data: 'code=***client_id=***&client_secret=***&redirect_uri=http***=authorization_code&code_verifier=',
      headers: [Object],
      params: [Object: null prototype] ,
      paramsSerializer: [Function: paramsSerializer],
      body: 'code=***&client_id=***&client_secret=***&redirect_uri=***&grant_type=authorization_code&code_verifier=',
      validateStatus: [Function: validateStatus],
      responseType: 'json'
    ,
    data: 
      error: 'invalid_grant',
      error_description: 'Malformed auth code.'
    ,
    headers: 
    ***,
    ***
    ,
    status: 400,
    statusText: 'Bad Request'
  ,
  config: 
    method: 'POST',
    url: 'https://oauth2.googleapis.com/token',
    data: 'code=***&client_id=***&client_secret=***&redirect_uri=***=authorization_code&code_verifier=',
    headers: 
      'Content-Type': 'application/x-www-form-urlencoded',
      'User-Agent': 'google-api-nodejs-client/3.1.2',
    ,
    params: [Object: null prototype] ,
    paramsSerializer: [Function: paramsSerializer],
    body: 'code=***&client_id=***&client_secret=***&redirect_uri=***&grant_type=authorization_code&code_verifier=',
    validateStatus: [Function: validateStatus],
    responseType: 'json'
  ,
  code: '400'

所以我将更改恢复为原始快速入门代码,但我仍然收到上述错误。我不知道为什么会发生这种情况,希望能得到一些帮助!

【问题讨论】:

你能提供你正在使用的代码吗?你能检查一下this 是否解决了你的问题? 【参考方案1】:

Gmail api 使用后很快就会过期

尝试删除credentials.json 并重新启动脚本。

【讨论】:

嘿 Mohamed,你完全正确。我创建了新的凭据,并且成功了!

以上是关于尝试实现 NodeJS Gmail API 示例的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 nodejs 下载 Gmail API 的附件?

Gmail NodeJs客户端中的Gmail API userId用例?

NodeJS:无法使用服务帐户访问 Gmail API

GMAIL API NodeJs

如何在 Nodejs 中使用 gmail api 在同一对话中回复电子邮件

NodeJS 中的 API Gmail:(节点:14592)UnhandledPromiseRejectionWarning:错误:委派被拒绝