Node.js客户端库对Gmail API的批处理请求

问题描述 投票:1回答:1

我有一个Node.js应用程序,该应用程序检索大量用户(200.000+)的电子邮件线程。我正在使用Node.js client library

我使用JWT和在用户方具有域范围委派的服务帐户分别对每个用户进行身份验证,然后按如下所示调用threads.list端点:

const { google } = require('googleapis');

const jwt = new google.auth.JWT(
  SERVICE_ACCOUNT.client_email,
  null,
  SERVICE_ACCOUNT.private_key,
  ['https://www.googleapis.com/auth/gmail.readonly'],
  user,
);

const auth = await authorize(jwt);
const gmail = google.gmail({ version: 'v1', auth });
const response = await gmail.users.threads.list({ userId: user, maxResults: 50 })

考虑到大量用户,我一直在考虑实现批处理请求以将每个请求分组更多的用户,而不是一个接一个地进行,但是我无法找到有关如何使用Node.js client library来做到这一点的信息。另外,考虑到每个用户都必须获得我的授权才能检索其数据,我将如何在批处理请求中处理该数据?

感谢您的任何建议

node.js google-api gmail-api google-api-nodejs-client
1个回答
0
投票

问题

没有办法批量处理列出多个用户的线程的请求,因为这将需要对每个用户进行授权,并且它们是单独的实体。

解决方法

您可以尝试将ArrayuserIds设为jwts,然后在for循环中迭代该过程,遍历数组的每个元素,对其进行授权并将线程列表存储到Array中]。

我希望这对您有所帮助。让我知道您是否还需要其他什么,或者您是否不了解。 :)

© www.soinside.com 2019 - 2024. All rights reserved.