【问题标题】:Google Drive API: we're sorry but your computer or network may be sending automated queriesGoogle Drive API:很抱歉,您的计算机或网络可能正在发送自动查询
【发布时间】:2020-12-19 08:03:04
【问题描述】:

我知道这个问题在去年被问过多次,但我似乎无法得到有效的答案。我正在尝试使用此网址从 Google Drive 下载文件:

https://www.googleapis.com/drive/v3/files/12BeD3I6JoRMfgeEJfZpZGEGew4Ncpw4i?alt=media&access_token=ya29.a0AfH6SMDyh3TTrbXZxSxQkuwj

(此处为简洁起见,简称为)

响应为 403 Forbidden,解释为“很抱歉,您的计算机或网络可能正在发送自动查询。为了保护我们的用户,我们现在无法处理您的请求。”。

我们是经过验证的应用程序,访问文件列表和上传文件没有问题。我们确实打算以自动方式下载文件,但我在第一次尝试时就看到了这个错误。

我确实找到了关于此主题的另一个问题,解决方案是使用授权标头。这就是我们的标题的样子:

Host: www.googleapis.com
User-Agent: comaxis-agent/1.0
Accept: */*
Content-Type: application/json
Authorization: bearer ya29.a0AfH6SMDyh3TTrbXZxSxQkuwj

(再次,令牌缩短)

这不起作用,没有变化。有人可以帮忙吗?

【问题讨论】:

    标签: google-drive-api


    【解决方案1】:

    修改点:

    • 从 2020 年 1 月起,访问令牌不能与 access_token=### 等查询参数一起使用。 Ref我认为这就是你的问题的原因。所以在当前阶段,需要在请求头中使用访问令牌。您的问题中已经提到了这一点。

    • 关于您的以下请求

        Host: www.googleapis.com
        User-Agent: comaxis-agent/1.0
        Accept: */*
        Content-Type: application/json
        Authorization: bearer ya29.a0AfH6SMDyh3TTrbXZxSxQkuwj
      
      • https://www.googleapis.com/drive/v3/files/###?alt=media 是 GET 方法。在这种情况下,不需要Content-Type。并且,请将bearer 修改为Bearer

    当以上几点反映到curl命令时,变成如下。

    curl 命令示例:

    curl \
      -H "Authorization: Bearer ###" \
      "https://www.googleapis.com/drive/v3/files/12BeD3I6JoRMfgeEJfZpZGEGew4Ncpw4i?alt=media"
    
    • 当该文件是二进制文件时,-o filename 选项可能是必需的。

    注意:

    • 当您要下载谷歌文档的文件(文档、电子表格、幻灯片等)时,请使用导出方式。 Ref

    参考:

    【讨论】:

    • 是的,它是大写的“B”而不是“b”——我的错。感谢您的帮助,很抱歉打扰您。
    猜你喜欢
    • 2020-06-02
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 2020-05-29
    • 1970-01-01
    相关资源
    最近更新 更多