如何在google-api-ruby-client中设置搜索参数

时间:2013-01-22 21:01:28

标签: ruby google-drive-api

为了检索文件夹的内容,我必须使用以下URL     https://www.googleapis.com/drive/v2/files?q= '根' 所以我认为它应该通过传递一个额外的参数

来工作
    @client.execute(
    :api_method => @drive.files.list ,
    :parameters =>{q=> "title='root'" })

但这不起作用

发生错误:{“errors”=> [{“domain”=>“global”,“reason”=>“invalid”,“message”=>“无效值”,“locationType” =>“参数”,“位置”=>“q”}],“code”=> 400,“message”=>“无效值”}

当我看到请求uri

时,这是非常明显的
https://www.googleapis.com/drive/v2/files?q=title%253D%27levelA%27

我的第一次尝试是用户URI.encode“title ='root'”,它既不起作用也不起作用。 我真的不知道如何保留单引号?

最佳, 菲利普

p.s。:提到的宝石http://rubydoc.info/github/google/google-api-ruby-client/frames

的链接

1 个答案:

答案 0 :(得分:1)

好吧,现在我找到了一个可行的解决方案,即使它非常麻烦。

search = CGI.escape("q='root'")
u.query = search
u= Addressable::URI.parse "https://www.googleapis.com/drive/v2/files"
req=Google::APIClient::Request.new(:uri=> u)
client.execute req

我希望这有助于某人......