Google云端硬盘网络连接无法正常运行,不会出现任何错误

时间:2017-05-22 10:19:32

标签: python google-drive-api

我使用python和google-api-python-client == 1.6.2与用户Google云端硬盘合作。一切都运行良好,没有任何错误,但我没有从Google云端硬盘(Google Drive API Documentation)收到任何推送通知。 "注册您的域名"成功完成。 "创建通知渠道"完成后,Channel对象返回给我。

我的代码:

try:
    drive_service.files().watch(
        fileId='CPw3cbyqkoC1QMK48R24-Z2CG9w',
        body=dict(
            id=str(uuid.uuid4()),
            resourceId='CPw3cbyqkoC1QMK48R24-Z2CG9w',
            type='web_hook',
            address='https://my-domain-address/web_hook'
        )
    ).execute()
except HttpError as err:
    logger.exception('HttpError {}: content={}'.format(err.uri, err.content))

响应:

{
    u'resourceId': u'CPw3cbyqkoC1QMK48R24-Z2CG9w',
    u'kind': u'api#channel',
    u'expiration': u'1495448262000',
    u'id': u'8837a4ad-98c0-4e89-8899-c07e12e3bffc',
    u'resourceUri': u'https://www.googleapis.com/drive/v3/files/0B2lHB_g_GJY9RWx6UkRjWUFjSVU?acknowledgeAbuse=false&alt=json&supportsTeamDrives=false&alt=json'
}

之后,当用户修改观看的Google云端硬盘资源时,https://my-domain-address/web_hook没有任何请求。

你有什么想法我做错了吗?

1 个答案:

答案 0 :(得分:0)

记录与搜索解决方案时发现的问题相关联的消息:

64.233.172.141 - - [22/May/2017:09:11:10 +0000] "POST /web_hook HTTP/1.1" 403 807 "-" "APIs-Google; (+https://developers.google.com/webmasters/APIs-Google.html)"
64.233.172.143 - - [22/May/2017:09:11:12 +0000] "POST /web_hook HTTP/1.1" 403 807 "-" "APIs-Google; (+https://developers.google.com/webmasters/APIs-Google.html)"
64.233.172.143 - - [22/May/2017:09:11:13 +0000] "POST /web_hook HTTP/1.1" 403 807 "-" "APIs-Google; (+https://developers.google.com/webmasters/APIs-Google.html)"

所以我收到了我的webhook的Google云端硬盘请求。

首先,我认为Nginx阻止了它们,但在我看到所有请求都是POST之后。

所以我遇到了转发POST请求的问题。我也使用Django并忘记禁用CSRh保护到webhook。这是我的问题的解决方案。

如果有人帮助我,我会很高兴的。