Node.js пакетных запросов клиентской библиотеки к Gmail API - PullRequest
1 голос
/ 27 февраля 2020

У меня есть приложение 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. Кроме того, учитывая, что каждый пользователь должен быть авторизован для того, чтобы я мог получать свои данные, как бы я обработал это в пакетном запросе?

Спасибо за любые предложения

1 Ответ

0 голосов
/ 06 марта 2020

Issue

Нет способа пакетировать запрос с перечислением потоков нескольких пользователей , так как для этого потребуется авторизация для каждого из них, и они являются отдельными объектами.

Обходной путь

Вы можете попытаться сделать Array из userIds или jwts, а затем повторить процесс в for l oop, проходящем через каждый элемент массив, авторизуя его и сохраняя список потоков в Array.

Надеюсь, это помогло вам. Дайте мне знать, если вам нужно что-то еще или вы что-то не поняли. :)

...