Я пытаюсь синхронизировать файлы между Amazon S3 и Google Диском со службой.Google Drive API PHP возвращает удаленные файлы
Я создал учетную запись службы и поделился папкой с ее адресом электронной почты. Затем с помощью автоматизированной службы, которую я создал, я создал несколько папок.
Все было в порядке, пока я не попытался удалить эти папки из пользовательского интерфейса Google Диска. Они исчезли из пользовательского интерфейса, но мое обслуживание все еще получает их, как если бы они присутствовали. Вот код, я использую, чтобы перечислить файлы/папки:
private function retrieveAllGoogleDriveFiles($service) {
$result = array();
$pageToken = NULL;
do {
try {
$parameters = array();
if ($pageToken) {
$parameters['pageToken'] = $pageToken;
}
$parameters['q'] = "trashed=false";
$files = $service->files->listFiles($parameters);
$result = array_merge($result, $files->getItems());
$pageToken = $files->getNextPageToken();
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
$pageToken = NULL;
}
} while ($pageToken);
return $result;
}
Вот механизм авторизации Я использую:
$credentials = new Google_Auth_AssertionCredentials(
'[email protected]m',
array('https://www.googleapis.com/auth/drive'),
$private_key,
'notasecret',
'http://oauth.net/grant_type/jwt/1.0/bearer'
);
$googleClient = new Google_Client();
$googleClient->setAssertionCredentials($credentials);
if ($googleClient->getAuth()->isAccessTokenExpired()) {
$googleClient->getAuth()->refreshTokenWithAssertion();
}
$googleService = new Google_Service_Drive($googleClient);
$files_list = $this->retrieveAllGoogleDriveFiles($googleService);
Случай, когда пользователь удаляет файл/папку из Google Drive для меня реальна, и я должен сделать синхронизацию обратно на S3 и удалить там файл/папку.
Заранее спасибо.
OK, так есть способ удалить файлы из пользовательского интерфейса (как реального пользователя Gmail, а не сервисного)? Или как я могу узнать, удалил ли пользователь его (отменил подписку), так как для меня это должно означать, что он был удален? – Vlado
Возможно, вам захочется пересмотреть, является ли учетная запись службы лучшим приемом. Если конечная точка синхронизации является реальной учетной записью Google, вам может быть лучше, чем OAuthing, как эта учетная запись, а не использовать учетную запись службы в качестве посредника. – pinoyyid