Есть ли способ фильтрации перечисленных писем с использованием разрешений только для метаданных в Gmail API? - PullRequest
0 голосов
/ 13 марта 2019

Вопрос

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

Проблема

Использование области только для метаданных, что лишает нас возможности применять фильтры при составлении списка электронных писем (Users.messages.list конечная точка), увеличивая в 10-100 раз количество вызовов, которые мы должны сделать в API Gmail.

Фон

Из соображений конфиденциальности мы ограничиваем доступ к нашему приложению до минимума. Мы сталкиваемся с проблемой, когда один из наших клиентов получает много автоматических внутренних электронных писем, в размере 5k + / день / пользователь. Обычно мы просто отфильтровываем этого автоматического отправителя, используя параметр q= в вызовах к Users.messages.list, а затем получаем только оставшиеся электронные письма, но q= не поддерживается с областью метаданных, даже для частей электронной почты, которые доступны в метаданных, таких как отправитель.

Прямо сейчас наш подход:

  1. перечислять все 5-7 тыс. Электронных писем для пользователя каждый день (Users.messages.list)

  2. делает 5-7 тыс. Запросов, по одному на каждое письмо, к конечной точке Users.messages.get (мы используем пакетирование, но применяется тот же дух)

  3. отбрасывать те электронные письма, в которых указан отправитель, который нам не нужен

  4. повтор для каждого пользователя (100 +)

Это, естественно, кажется неэффективным.

...