Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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+;OAuth访问YelpAPI_Ruby_Oauth_Oauth Ruby - Fatal编程技术网

使用Ruby+;OAuth访问YelpAPI

使用Ruby+;OAuth访问YelpAPI,ruby,oauth,oauth-ruby,Ruby,Oauth,Oauth Ruby,我刚刚开始使用OAuth,我尝试创建一个小客户端来连接到一些Web服务。。。我尝试了twitter,它工作起来很有魅力,然而,我也尝试了访问Yelp V2 API(遵循他们的Python示例),但我总是得到答案: HTTP 400错误请求 缺少参数:oauth_消费者_密钥 这是我的密码: require 'rubygems' require 'oauth' CONSUMER_KEY = "MY_CONSUMER_KEY" SECRET = "MY_CONSUMER_SECRET" TOKEN

我刚刚开始使用OAuth,我尝试创建一个小客户端来连接到一些Web服务。。。我尝试了twitter,它工作起来很有魅力,然而,我也尝试了访问Yelp V2 API(遵循他们的Python示例),但我总是得到答案: HTTP 400错误请求

缺少参数:oauth_消费者_密钥

这是我的密码:

require 'rubygems'
require 'oauth'

CONSUMER_KEY = "MY_CONSUMER_KEY"
SECRET = "MY_CONSUMER_SECRET"
TOKEN = "MY_TOKEN"
TOKEN_SECRET = "MY_TOKEN_SECRET"


consumer = OAuth::Consumer.new( CONSUMER_KEY,SECRET, {:site => "http://api.yelp.com", :signature_method => "HMAC-SHA1", :scheme => :header})

access_token = OAuth::AccessToken.new( consumer, TOKEN,TOKEN_SECRET)

p access_token.get("/v2/search?location=new+york").body
不管怎么说,该代码与twitterapi一起工作没有任何问题(我实际上遵循了twitter的示例代码)

干杯并提前表示感谢,
Ze

使用:query\u字符串而不是:header,所有内容都将正常工作(至少对我而言)。

相同的代码,使用:

根据,必须在查询字符串中传递OAuth参数。接受的答案解决了这个问题,这一事实向我表明,
oauth
gem中可能有一个bug导致了这个问题

require 'signet/oauth_1/client'
client = Signet::OAuth1::Client.new(
  :consumer_key =>        'MY_CONSUMER_KEY',
  :consumer_secret =>     'MY_CONSUMER_SECRET',
  :access_token_key =>    'MY_TOKEN_KEY',
  :access_token_secret => 'MY_TOKEN_SECRET'
)
response = client.fetch_protected_resource(
  :uri => 'http://api.yelp.com/v2/search?location=new+york'
)
# The Rack response format is used here
status, headers, body = response
p body