1

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

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

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

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

但是,下载 URL 的参数有一些有趣的地方,它看起来像这样:

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

(在 url '&\;' 中实际上没有 '\' 但我将其放在帖子中以避免将其转义为 '&')。

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

为了形成正确的 http 请求,我需要确切地知道参数名称和值是什么,但是我拥有的下载 URL 令人困惑。此外,如果参数名称是 h、amp;e 和 amp;gd,那么包含这些参数的请求是否对获取文件内容有效(如果不是,它看起来像一个错误)。

我下载和上传文档(msword 文档)没有问题,我下载文件的范围是正确的。

我尝试了很多不同的请求。当我单独处理 3 个参数 (h,e,gd) 时,我得到Unauthorized 401. 如果我假设我只有一个参数 - h15287211447292764666&ae=download&gd=true我得到 的值500 Internal Server Error(谷歌 api 状态:'API 中发生了意外错误。','如果问题仍然存在,请在论坛中发帖。')。

如果我根本不放任何参数或者我放了 3 个参数 -h、amp;e、amp;gd,我得到302 Found. 我尝试按照重定向发送更多请求,但我仍然无法获得实际的 pdf 内容。我还在 OAuth Playground 中进行了实验,但它似乎没有像预期的那样工作。在 OAuth 中使用下载 URL 发送获取请求会响应302 Found而不是响应 PDF 内容。

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

4

1 回答 1

0

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

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

我已将&access_token=<token>URL替换为setRequestHeader("Authorization", "Bearer <token>" )

于 2012-06-13T16:13:40.313 回答