Как проверить, изменилось ли содержимое папки на диске Google? - PullRequest
0 голосов
/ 25 ноября 2018

Я бы хотел сделать кеширование содержимого папки, поэтому было бы здорово, если бы я мог как-то получить информацию, если папка на диске Google изменилась , а затем очистить кэш.Есть ли способ для этого?Лучший в php.

1 Ответ

0 голосов
/ 26 ноября 2018

Через некоторое время я пришел к этому хорошему решению:

function isGoogleDriveFolderContentUpdated($lastTime, $folderId, &$client)
{

    $appsactivityService = new Google_Service_Appsactivity($client);

    $optParams = array(
        'source'           => 'drive.google.com',
        'drive.ancestorId' => $folderId,
        'pageSize'         => 1,
    );

    $results = $appsactivityService->activities->listActivities($optParams);

    if (count($results->getActivities()) == 0) {

        return 0;

    } else {
        $activities = $results->getActivities();
        $activity = $activities[0];

        $event = $activity->getCombinedEvent();
        $activityTime = date(DateTime::RFC3339, $event->getEventTimeMillis() / 1000);

        $lastTime = strtotime($lastTime);
        $activityTime = strtotime($activityTime);

        if ($activityTime > $lastTime) {
            //folder content changed since last check
            return 1;
        }

        return 0;
    }

}

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

echo isGoogleDriveFolderContentUpdated("2018-11-26T21:03:57+01:00" ,"1A9CXgB44F1khfDAzU4t0R322TWh", $client);

, где первый аргумент - это дата и время последней проверки, второйидентификатор папки на диске Google и последняя ссылка для клиентской переменной .Также ваше приложение должно иметь область действия: https://www.googleapis.com/auth/activity, иначе вы получите ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...