Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 使用下载URL的Google Drive SDK授权获取请求_Ruby On Rails 3_Google Drive Api_Httparty - Fatal编程技术网

Ruby on rails 3 使用下载URL的Google Drive SDK授权获取请求

Ruby on rails 3 使用下载URL的Google Drive SDK授权获取请求,ruby-on-rails-3,google-drive-api,httparty,Ruby On Rails 3,Google Drive Api,Httparty,在我的Rails 3应用程序中,我能够使用Oauth2成功地进行身份验证,并能够获取文件的元数据。下载的URL是 文件规定我必须执行以下操作: 按ID获取文件的元数据。若要下载文件的内容,请向文件的下载URL发送授权HTTP GET请求 我不希望在Ruby中使用GoogleAPI客户机库,而只是使用HttpParty来制定HTTP请求 下面是我一直试图开始工作的代码片段 response = HTTParty.get(https://doc-10-3o-docs.googleuserconte

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

文件规定我必须执行以下操作:

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

我不希望在Ruby中使用GoogleAPI客户机库,而只是使用HttpParty来制定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}
response=HTTParty.get(https://doc-10-3o-docs.googleusercontent.com/docs/securesc/tj647mo7q16s2rquitcrcv800pkn7gcf/ap67p147th03cn8rjpu68i8qva3p7i8j/1345240800000/02289284805103305740/0?access_token={token})

打开(“/User/mymachine/test.pdf”,“wb”){| pdf | pdf您必须将
Authorization:Bearer
头添加到您的请求中,以及您在OAuth 2.0流中检索到的访问令牌

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

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

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

其中,
downloadUrl
是您从文件元数据中获得的,而
token
是您在执行授权时检索到的访问令牌。

您必须将
authorization:Bearer
头添加到您的请求中,以及在OAuth 2.0流中检索到的访问令牌

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

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

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

其中,
downloadUrl
是您从文件元数据中获得的,而
token
是您在执行授权时检索到的访问令牌。

获得相同的结果。response.message表示“Unauthorized”我知道access_令牌很好,因为我可以将它添加到其他api调用中,它可以正常工作。我检查了范围,并且在那里拥有适当的权限。如果您可以捕获代码发送的HTTP请求,以便查看该请求,那将是非常棒的。此外,请尝试使用OAuth 2.0:Th发送相同的请求anks推荐了“OAuthPlayway”链接。它显示了我在中输入的身份验证不正确。下面是正确的语法response=HTTParty.get(downloadUrl,:headers=>{“Authorization”=>“OAuth ya29.AHES6ZRSSHTN8cjeqcvAayYsNF25UpdLkTzCB\u dmRl9OrxZ_x-XXXX”}),我已经更新了代码。删除冒号也很重要:在“OAuth”之后留下一个空格,然后添加访问令牌。现在就像一个符咒。得到相同的结果。response.message状态为“Unauthorized”我知道access_令牌很好,因为我可以将它添加到其他api调用中,它可以正常工作。我检查了范围,并且在那里拥有适当的权限。如果您可以捕获代码发送的HTTP请求,以便查看该请求,那将是非常棒的。此外,请尝试使用OAuth 2.0:Th发送相同的请求anks推荐了“OAuthPlayway”链接。它显示了我在中输入的身份验证不正确。下面是正确的语法response=HTTParty.get(downloadUrl,:headers=>{“Authorization”=>“OAuth ya29.AHES6ZRSSHTN8cjeqcvAayYsNF25UpdLkTzCB\u dmRl9OrxZ_x-XXXX”}),我已经更新了代码。删除冒号也很重要:在“OAuth”之后留下一个空格,然后添加access_令牌。现在就像一个符咒。