Google drive api Google驱动器推送通知-单个更改事件的多次点击
我正在尝试设置Google驱动器推送通知,以监视对文件夹的更改 守则:Google drive api Google驱动器推送通知-单个更改事件的多次点击,google-drive-api,Google Drive Api,我正在尝试设置Google驱动器推送通知,以监视对文件夹的更改 守则: $channel = new \Google_Service_Drive_Channel; $channel->setId('ZZZ'); $channel->setResourceId('a1b2c3'); $channel->setType('web_hook'); $channel->setToken('superToken'); $channel
$channel = new \Google_Service_Drive_Channel;
$channel->setId('ZZZ');
$channel->setResourceId('a1b2c3');
$channel->setType('web_hook');
$channel->setToken('superToken');
$channel->setAddress('https://mydomain/notification');
$folderId = '0BzNPrO3YVvJKU1J6NklYcThFMjQ';
$res = $service->files->watch($folderId, $channel);
$res包含确认信息,一旦我将文件上传到该文件夹中,我确实会收到一个通知命中(“同步”信号也可以接收)
收到更改通知后,我会回显“200”字符串,正如Google Drive API参考中建议的那样:
To indicate success, you can return any of the following status codes: 200, 201, 202, 204, or 102.
If your service returns 500, 502, 503, or 504, the Drive API will retry with exponential backoff.
问题是,对于一个变更事件,我会收到多个通知,而且它们似乎每次都会在较长时间后到达(与“指数退避”行为相匹配)。同时,maxChangeIdCount的更改资源不会增加
因此,Google Drive pusher似乎没有看到成功的200代码并重试通知。当然,这带来了一个巨大的问题——很难证实这种变化确实发生了
因此,问题是:
- 对通知的正确响应是什么?是字符串“200”还是没有响应体的HTTP响应代码200
- 我如何保证当监视的文件更改时,始终只有一个通知更新
- 对通知的正确响应是什么?是字符串“200”还是没有响应体的HTTP响应代码200
- 我如何保证在监视的文件更改时始终只有一个通知更新
- 您可以确保发送的是200 http响应代码
- 根据代码的结构,如果您可以确保只有一个频道是开放的,那么google只会向您发送一个通知,也就是说,如果前一个频道已过期,则只创建一个新频道