Google Workspace Reports API – Показатели использования клиентами – Получение всех параметров Gmail

avatar
rgahan
1 июля 2021 в 19:29
127
1
2

Я использую Google Workspace Reports API для получения показателей использования клиентами GMail через клиент Python. Я хотел бы получить все параметры, но предпочел бы не перечислять каждый из них по отдельности (например: service.customerUsageReports().get(date=temp, parameters='gmail:num_1day_active_users,gmail:num_30day_active_users,gmail:num_emails_received').execute())

Я пробовал parameters='gmail' и parameters='gmail:*' безрезультатно.

Есть ли сокращение для получения всех показателей использования клиентов, связанных с GMail, или вам нужно передавать каждый параметр по отдельности?

Источник

Ответы (1)

avatar
NightEye
1 июля 2021 в 21:20
1

Я не думаю, что вы можете. Но если вы хотите автоматизировать несколько вызовов и использовать разные параметры, вы можете выполнить следующие действия:

.
  1. Сохранить все возможные параметры в массиве.
  2. Отфильтровать массив с помощью регулярного выражения.
  3. Добавить все отфильтрованные элементы в строку через запятую
  4. Передайте строку в качестве параметра

Код:

import re

parameters = [
    'accounts:num_30day_logins',
    'accounts:num_7day_logins',
    'accounts:num_1day_logins',
    'accounts:num_disabled_accounts', 
    'accounts:apps_total_licenses',
    'accounts:apps_used_licenses',
    'accounts:num_users_2sv_enrolled',
    'gmail:num_emails_received',
    'gmail:num_inbound_spam_emails',
    'gmail:num_inbound_non_spam_emails',
    'gmail:num_inbound_delivered_emails',
    'gmail:num_emails_sent',
    'gmail:num_inbound_rejected_emails',
    'gmail:num_inbound_rerouted_emails',
    'gplus:num_video_calls',
    'gplus:num_video_conferences',
    'gplus:num_video_conferences_cfm',
    'gplus:total_video_call_minutes',
    'docs:num_docs']

separator = ','
r_gmail = re.compile("gmail.*")
r_accounts = re.compile("accounts.*")
gmail_list = list(filter(r_gmail.match, parameters))
accounts_list = list(filter(r_accounts.match, parameters))
gmail_parameters = separator.join(gmail_list) 
accounts_parameters = separator.join(accounts_list) 

# contains gmail parameters
print(gmail_parameters)
# contains accounts parameters
print(accounts_parameters)

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

Таким образом, вам не нужно поддерживать многочисленные длинные списки параметров. Только один, и вам нужно всего лишь создать регулярное выражение, чтобы фильтровать его так, как вам нравится.

Вывод:

output