Google Drive API - 很抱歉......但您的计算机或网络可能正在发送自动查询

Luc*_*ior 5 google-contacts-api

我们有一个 Google Drive Oauth2 应用程序集成。我们正在使用 Google Drive API 导出并获取端点,以便从我们的客户的 Google Drive 文件夹中读取数据。我们的应用程序由 Google Oauth 验证团队发布,但我们无法读取不是(csv、xls、xlsx)Google Docs 文件的文件。

这是一个 API 请求示例: URL:

"https://www.googleapis.com/drive/v3/files/1874uz4MTNer4IszgWG_3pH6VEH2AWJPd?alt=media&access_token=ACCESS_TOKEN"
Run Code Online (Sandbox Code Playgroud)

回复:

"<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/><title>Sorry...</title><style> body { font-family: verdana, arial, sans-serif; background-color: #fff; color: #000; }</style></head><body><div><table><tr><td><b><font face=sans-serif size=10><font color=#4285f4>G</font><font color=#ea4335>o</font><font color=#fbbc05>o</font><font color=#4285f4>g</font><font color=#34a853>l</font><font color=#ea4335>e</font></font></b></td><td style=\"text-align: left; vertical-align: bottom; padding-bottom: 15px; width: 50%\"><div style=\"border-bottom: 1px solid #dfdfdf;\">Sorry...</div></td></tr></table></div><div style=\"margin-left: 4em;\"><h1>We're sorry...</h1><p>... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now.</p></div><div style=\"margin-left: 4em;\">See <a href=\"https://support.google.com/websearch/answer/86640\">Google Help</a> for more information.<br/><br/></div><div style=\"text-align: center; border-top: 1px solid #dfdfdf;\"><a href=\"https://www.google.com\">Google Home</a></div></body></html>"
Run Code Online (Sandbox Code Playgroud)

这种相同的请求在 2020 年 2 月 7 日之前一直运行良好。

使用导出 Google Doc 文件的导出端点可以正常工作。

第一时间,我们发现这个链接描述了一些变化:https : //support.google.com/cloud/answer/9110914 我们申请了 Oauth 验证,我们通过了但我们仍然看到同样的问题,即使我们重做Oauth2 身份验证流程生成新的访问/刷新令牌。我们已经尝试在 Issue Tracker 和 Oauth Team 上就此与 Google 联系,但都无济于事。我们在生产服务器上没有任何类型的恶意软件、VPN 或类似的东西,我们可以在一些相关问题中找到。

有没有人对如何解决这个问题有任何建议?

谢谢你。

Luc*_*ior 8

我们设法让它再次工作。我们发现了这个:https : //cloud.google.com/blog/products/application-development/upcoming-changes-to-the-google-drive-api-and-google-picker-api

Google 没有更新他们的 Drive API 文档,所以我们不知道这个变化。

基本上我们必须从 access_token URL 参数切换到授权标头。也就是说,要验证 API,您应该像这样使用 Header:

"Authorization" : "Bearer ACCESS_TOKEN"
Run Code Online (Sandbox Code Playgroud)

这对我们有用。

谢谢大家的帮助。