当前位置: 首页 > 知识库问答 >
问题:

Gmail API和Google API节点客户端出现错误500 backendError

白文彬
2023-03-14

我正在尝试将新的Gmail API与Google API节点客户端一起使用。我从开发者控制台创建了一个新项目,设置了一个新的“服务帐户”客户端ID,并启用了对API的访问。

作为概念证明,我只是试着列出收件箱中的线程。当我为API explorer启用OAuth 2.0切换并输入我的电子邮件地址时,请求成功,我看到一个带有数据的JSON响应。

现在我尝试在Node中执行同样的操作:

var googleapis = require('googleapis');

var SERVICE_ACCOUNT_EMAIL = '...SNIP...';

// generated by: openssl pkcs12 -in ...SNIP...p12 -out key.pem -nocerts -nodes
var SERVICE_ACCOUNT_KEY_FILE = 'key.pem';
var jwt = new googleapis.auth.JWT(
        SERVICE_ACCOUNT_EMAIL,
        SERVICE_ACCOUNT_KEY_FILE,
        null,
        ['https://www.googleapis.com/auth/gmail.readonly']);

googleapis
    .discover('gmail', 'v1')
    .execute(function(err, client) {

        jwt.authorize(function(err, result) {
            if(err) console.error(err);
            else console.log(result);

            client.gmail.users.threads.list()
                .withAuthClient(jwt)
                .execute(function(err, result) {
                    if(err) console.error(err);
                    else console.log(result);
            });
        });
    });

首先,我打印了authorize()调用的结果,它看起来像是返回了一个令牌,所以我想我已经正确地设置了OAuth的所有内容:

{ access_token: '...SNIP...',
  token_type: 'Bearer',
  expires_in: 1404277946,
  refresh_token: 'jwt-placeholder' }

然后我尝试实际使用API,但我得到了一个错误:

{ errors: 
   [ { domain: 'global',
       reason: 'backendError',
       message: 'Backend Error' } ],
  code: 500,
  message: 'Backend Error' }

在这一点上,我不知道还能尝试什么。我认为OAuth的东西正在正常工作,因为我没有得到任何身份验证错误。我还认为应用编程接口本身正在工作,我的账户也很好,因为我可以通过应用编程接口资源管理器使用它。我也没有看到任何节点库出错的迹象。简而言之,我不知道问题是什么。有什么想法吗?

共有1个答案

华鹭洋
2023-03-14

您正在使用服务帐户来验证您对GMail的请求。据我所知,您的服务帐户不会有Gmail,只有用户有GMail。因此,您需要与用户一起执行OAuth2流程(参见这里的示例)。

 类似资料:
  • 问题内容: 我要疯了: 已安装Hadoop / Hbase,所有正在运行; 伪分布式环境。 HBase的壳 正在运行并提出运行“列表”的正确结果;并且 通过红宝石和节俭连接时,一切正常。我们正在添加数据,它正在进入系统,我们可以查询/扫描它。一切似乎都很好。 但是,使用Java连接时: 我一直在努力寻找原因,但我真的一点头也不知道。一切似乎都已正确安装。 看起来也不错。 如果您键入任何内容,则连接

  • 我正在尝试对客户端凭据流进行身份验证,但一直返回错误400。我查看了可用的API,但看不出我做错了什么。如果有人能给我一个正确的方向,那太棒了。谢谢

  • 如有任何帮助,我们将不胜感激。 PS:我使用的是java7

  • 我对GoogleAPI有些问题。 这是错误。 条件:jdk 1.8,Tomcat 8.5 请帮我解决这个错误。

  • 我们试图对cadence设置进行基准测试(目前在2个EC2实例上运行:m5a.xlarge ),发现了许多cadence客户端错误: cadence_service:cadence_matching,操作:历史记录重新记录活动任务已启动

  • 错误:在object.exports._errnoException(util.js:856:11)在exports._exceptionWithHostPort(util.js:879:20)在tcpConnectTRap.AfterConnect[as oncomplete](net.js:1063:14)vivek@vivek-latitude-e6220://var/www/html/te