1

在我的 Rails 3 应用程序中,我能够使用 Oauth2 成功进行身份验证,并能够获取文件的元数据。下载地址是

https://doc-10-3o-docs.googleusercontent.com/docs/securesc/tj647mo7q16s2rquitcrcv800pkn7gcf/ap67p147th03cn8rjpu68i8qva3p7i8j/1345240800000/02289284805103305740/02289284805103305740/0BwsQ03A3DXbCTVBjUDlNNzNJNDQ?h=16653014193614665626&e=download&gd=true

该文档指出我必须执行以下操作:

按 ID 获取文件的元数据。要下载文件的内容,请将授权的 HTTP GET 请求发送到文件的 downloadUrl

我不希望为 Ruby 使用 Google API 客户端库,而只是使用 HTTParty 制定一个 HTTP 请求

这是我一直试图开始工作的代码片段

response = HTTParty.get(https://doc-10-3o-docs.googleusercontent.com/docs/securesc/tj647mo7q16s2rquitcrcv800pkn7gcf/ap67p147th03cn8rjpu68i8qva3p7i8j/1345240800000/02289284805103305740/0?access_token={token})
open("/User/mymachine/test.pdf", 'wb'){|pdf| pdf << response.body}

我很确定我提出的请求是错误的。任何帮助将不胜感激。提前致谢。

4

1 回答 1

1

您必须将Authorization: Bearer标头与您在 OAuth 2.0 流程中检索到的访问令牌一起添加到您的请求中。

基本上,您的 HTTP 请求必须类似于 OAuth 2.0 文档中的请求:

https://developers.google.com/accounts/docs/OAuth2WebServer#callinganapi

我不是 Ruby 专家,但使用 HTTParty 的请求应该是:

response = HTTParty.get(downloadUrl, :headers => {"Authorization" => "OAuth {token}"})

downloadUrl您从文件的元数据中获得的那个在哪里,并且token是您在执行授权时检索到的访问令牌。

于 2012-08-18T01:25:07.440 回答