Загрузите почтовый ящик с помощью Email Audit (Admin SDK)
Я хочу загрузить почтовый ящик с помощью Admin SDK, но не могу заставить его работать. Я не могу найти то, что Сфера, которую я должен определить. Я использую сервисную учетную запись.
Для того, чтобы подготовить загрузку, вы должны сделать POST
запросить https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/{domain name}/{source user name}
, но нет audit.mail
сфера или что-то в этом роде.
Вот моя просьба:
<?php
$client = new \Google_Client();
$cred = new \Google_Auth_AssertionCredentials(
'***@developer.gserviceaccount.com',
array(
'https://apps-apis.google.com/a/feeds/compliance/audit',
),
file_get_contents($path)
);
$client->setAssertionCredentials($cred);
if($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}
$url = "https://apps-apis.google.com/a/feeds/compliance/audit/publickey/" . $domain;
$req = new \Google_Http_Request($url, 'POST');
$req->setPostBody($xml);
$token = json_decode($client->getAccessToken(), true);
$req->setRequestHeaders(
array(
'Content-Type'=> 'application/atom+xml; charset=utf-8',
'Authorization'=> 'Bearer ' . $token['access_token'] . '',
)
);?>
Но я получаю 403
ошибка: You are not authorized to access this API.
,
Как лучше всего загрузить почтовый ящик с помощью PHP API с учетной записью службы?
1 ответ
Область действия API аудита электронной почты: https://apps-apis.google.com/a/feeds/compliance/audit/
Предоставили ли вы стороннему клиентскому доступу в консоли администратора для своей учетной записи службы соответствующую область? Настройка области должна быть установлена в вашем коде, а также в консоли администратора.
Вот полная инструкция о том, как правильно настроить учетную запись службы (пример находится на диске, поэтому вы должны изменить область действия для аудита электронной почты API в вашем случае)
https://developers.google.com/drive/web/delegation
Убедитесь, что вы выполнили шаги для "Передачи полномочий на уровне домена вашей учетной записи службы".
Наконец, если вы посмотрите на пример кода PHP, вы увидите, что вам понадобится область действия, пользователь, которого вы пытаетесь олицетворять, и ваша учетная запись службы.