Как использовать G Suite Email Audit API с google-api-python-client?

Я хочу получить список (тема, дата, время отправителя) отправленного электронного письма от определенного пользователя, используя google-api-python-client,

Я нашел Руководство разработчика API Git Email Audit API, но, к сожалению, примеров Python нет.

Это возможно даже с google-api-python-client?

1 ответ

Решение

API аудита электронной почты G Suite - это один из старых API, который все еще использует протокол API данных Google. Этот протокол не поддерживается google-api-python-client, но вы должны использовать вместо него https://github.com/google/gdata-python-client. Эта библиотека старая, и Google больше не обновляет ее:

  • это работает только с Python 2.x
  • для выполнения аутентификации OAuth2 необходимо интегрировать ее с библиотекой oauth2client

Вот пример того, как его использовать:

from __future__ import print_function

import argparse

import gdata.apps.audit.service
from oauth2client import file, client, tools

SCOPES = ['https://apps-apis.google.com/a/feeds/compliance/audit/',]

# be sure to update with the correct user
ID = 'user@domain.com'

store = file.Storage('email-audit{}.json'.format(ID))
creds = store.get()

# client_id.json is the client_id file generated from the developer console project
if not creds or creds.invalid:
    flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
    flags.auth_host_port = [8010, 8020]
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
    creds = tools.run_flow(flow, store, flags)

access_token, expires_in = creds.get_access_token()

gd_client = gdata.apps.audit.service.AuditService(domain=ID.split('@')[1])
gd_client.additional_headers[u'Authorization'] = u'Bearer {0}'.format(access_token)

monitors = gd_client.getEmailMonitors(ID.split('@')[0])

print(monitors)

Если вы хотите оригинальный образец от Google, вы можете найти его здесь. Это намного сложнее, чем у меня, и я сомневаюсь, что это сработает, так как не выполняет аутентификацию OAuth2; используйте это как ссылку.

Другие вопросы по тегам