没有收到来自驱动器的 webhook 通知,为什么?

我正在尝试使用来自 Google Drive SDK 的 推送通知 来接收所有更改的通知进入一个帐户,我按照步骤注册域,然后创建通知频道 并且它有效,我从 google-api-php-client:

Im trying to use push notification from Google Drive SDK for receive notification for all changes into an account, I follow the steps Registering domain, then creating notification channel and it works, I get this object Google_Service_Drive_Channel from 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
        (
        )

)

所以,我去谷歌驱动器帐户移动一些文件,但我仍然没有收到来自指定地址"参数位置内的 webhook 的任何内容.

So, I go to the google drive account for move some file, but I still don't receive anything from the webhook inside the location specified "address" parameter.

我在创建频道时收到 X-Goog-Resource-State = sync 标头,但其他事件(如(添加、删除、垃圾、取消垃圾、更改、更新))没有.

I receive X-Goog-Resource-State = sync header just when the channel is created, but others events like (add, remove, trash, untrash, change, update) don't.

任何帮助,谢谢

推荐答案

这是我的错误的解决方案 将域范围的权限委派给您的服务帐户

This was the solution for my bug Delegate domain-wide authority to your service account

相关文章