Как использовать 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; используйте это как ссылку.