Google docs API:无法下载文件,下载文件有效

时间:2012-06-13 11:51:51

标签: oauth google-docs google-docs-api google-drive-api

我正在尝试使用google文档列表API和OAuth 1.0从从google docs 下载pdf文件的http请求。我没有使用任何外部API用于oauth或谷歌文档。

根据文档,我获得了pdf的下载URL,该文件在放入浏览器时可以正常工作。

根据文档,我应该发送一个如下所示的请求:

GET https://doc-04-20-docs.googleusercontent.com/docs/secure/m7an0emtau/WJm12345/YzI2Y2ExYWVm?h=16655626&e=download&gd=true  

然而,下载网址对于参数来说有点不可思议,它看起来像这样:

https://doc-00-00-docs.googleusercontent.com/docs/securesc/5ud8e...tMzQ?h=15287211447292764666&amp\;e=download&amp\;gd=true    

(在网址'& amp \;'实际上没有'\'但是我把它放在帖子中以避免将其作为'&'转义。)

那么这是怎么回事;我有3个参数h,e,gd或者我有一个值为15287211447292764666&ae=download&gd=true的参数h,或者我有以下3个参数值对:​​h = 15287211447292764666amp;e = download,{ {1}}(我认为是这种情况,它似乎是一个错误)?

为了形成正确的http请求,我需要知道参数名称和值是什么,但是我的下载URL令人困惑。此外,如果params名称是h,amp; e和amp; gd,则是包含那些对获取文件内容有效的params的请求(如果不是,它似乎是一个bug)。

我在下载和上传文档时遇到问题(msword文档),我下载文件的范围是正确的。

我经常尝试不同的请求。当我单独处理3个参数(h,e,gd)时,我得到amp;gd = true。如果我假设我只有一个参数 - h值为Unauthorized 401,我会得到15287211447292764666&ae=download&gd=true(谷歌api说:'API中出现意外错误','如果问题仍然存在,请发布在论坛里。')。

如果我没有放任何参数,或者我放了3个参数-h,amp; e,amp; gd,我得到500 Internal Server Error。我尝试按照重定向发送更多请求,但我仍然无法获得实际的pdf内容。我也在OAuth Playground中进行了实验,看起来它没有工作,因为它不应该。在OAuth中使用下载URL发送获取请求时会使用302 Found进行响应,而不是使用PDF内容进行响应。

这里发生了什么?如何在回复中获取pdf内容?请帮忙。

1 个答案:

答案 0 :(得分:0)

我用oAuth2尝试了同样的问题(错误401)。

通过在请求标头中插入oAuth2令牌而不是在URL中解决。

我已通过&access_token=<token>

替换了网址中的setRequestHeader("Authorization", "Bearer <token>" )