Я пытаюсь использовать push-уведомление из SDK Google Диска для получения уведомлений обо всех изменениях в учетной записи, я следую шагам Регистрация домена , а затем создание канала уведомлений, и он работает, я получаю этот объект Google_Service_Drive_Channel
от google-api-php-client :
$client = new Google_Client(); $client->setApplicationName("APP_NAME"); $service = new Google_Service_Drive($client); $key = file_get_contents('my_private_key_location.p12'); $cred = new Google_Auth_AssertionCredentials( 'email_address_from_the_client@developer.gserviceaccount.com', array('https://www.googleapis.com/auth/drive'), $key ); $client->setAssertionCredentials($cred); // Channel $channel = new Google_Service_Drive_Channel(); $channel->setId(uniqid()); $channel->setAddress('https://my.custom.url'); $channel->setKind('api#channel'); $channel->setType('web_hook'); $test = $service->changes->watch($channel); print_r($test); // Response printing the result Google_Service_Drive_Channel Object ( [address] => [expiration] => 1407171497000 [id] => xxxxxxxxxxxxxxxxxx [kind] => api#channel [params] => [payload] => [resourceId] => xxxxxxxxxxxxxxxxxxxx [resourceUri] => https://www.googleapis.com/drive/v2/changes?includeDeleted=true&includeSubscribed=true&maxResults=100&alt=json [token] => [type] => [modelData:protected] => Array ( ) [processed:protected] => Array ( ) )
Итак, я перехожу на учетную запись google для перемещения какого-либо файла, но я все еще ничего не получаю от веб-камеры внутри указанного параметра «адрес».
Я получаю заголовок X-Goog-Resource-State = sync
только тогда, когда канал создан, но другие события, такие как (добавление, удаление, мусор, нераскрытие, изменение, обновление), нет.
Любая помощь, спасибо
Я предполагаю, что учетная запись Диска, которую вы редактируете, не связана с этой учетной записью службы, поскольку я не вижу, что вы используете подпараметр в любом месте. Можете ли вы попробовать его с помощью веб-OAuth 2.0 в качестве теста, чтобы вы могли установить, что он получает доступ к той же учетной записи Диска, что и тот, который вы изменяете. Взгляните на документы Диска в учетных записях приложений, чтобы узнать больше об этом: https://developers.google.com/drive/web/service-accounts
Это было решением для моей ошибки. Делегировать полномочия домена для вашей учетной записи службы