Почему вы не получаете уведомления о подключении через Интернет?
Я пытаюсь использовать push-уведомление из Google Drive SDK для получения уведомлений обо всех изменениях в учетной записи, я следую инструкциям Регистрация домена, затем создаю канал уведомлений, и он работает, я получаю этот объект Google_Service_Drive_Channel
от https://github.com/google/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 Drive для перемещения какого-либо файла, но я все еще не получаю ничего от webhook внутри указанного в параметре address адреса.
я получил X-Goog-Resource-State = sync
заголовок только тогда, когда канал создан, но другие события, такие как (добавить, удалить, удалить, удалить, изменить), нет.
Любая помощь, спасибо
2 ответа
Я предполагаю, что редактируемая учетная запись Drive не связана с этой учетной записью службы, поскольку я не вижу, чтобы вы где-либо использовали подпараметр. Можете ли вы попробовать его с веб-интерфейсом OAuth 2.0 в качестве теста, чтобы убедиться, что он получает доступ к той же учетной записи Drive, что и изменяемая вами. Подробнее об этом см. В документе "Драйв" по учетным записям приложений: https://developers.google.com/drive/web/service-accounts
Это было решением для моей ошибки. Передавайте полномочия на весь домен вашей учетной записи службы.