我正在尝试在我的Rails应用程序中使用Yelp API,但在这样做时遇到了问题。我正在按照这里的文档(https://github.com/Yelp/yelp-api/blob/master/v2/ruby/example.rb),但不断收到错误。下面是我使用的控制器代码:如何解决与yelp API的omniauth错误?
require 'rubygems'
require 'oauth'
consumer_key = 'private'
consumer_secret = 'private'
token = 'private'
token_secret = 'private-private'
api_host = 'api.yelp.com'
@places = Place.all
consumer = OAuth::Consumer.new(consumer_key, consumer_secret, {:site => "http://#{api_host}"})
access_token = OAuth::AccessToken.new(consumer, token, token_secret)
path = "/v2/search?term=restaurants&location=new%20york"
p access_token.get(path).body
我不断收到的错误是:
cannot load such file -- oauth
我有宝石“omniauth”在我的Gemfile并运行安装包(以及作为重新启动服务器),但仍然得到这个错误...有关如何排除故障的任何想法?
的Gemfile:
source 'https://rubygems.org'
gem 'rails', '3.2.12'
gem 'dynamic_form', '1.1.4'
gem 'sqlite3'
gem 'devise', '2.1.0rc'
gem 'bootstrap-sass', '2.1'
gem 'omniauth'
gem 'httparty'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
group :test, :development do
gem 'rspec-rails', '~> 2.11'
end
group :test do
gem 'capybara', '1.1.2'
end
当我这样做时,我收到一个错误,说未初始化的常量PlacesController :: OAuth。 Yelp API似乎已过时(2岁),仍然说OAuth而不是Omniauth。我将如何解决这个问题? – sharataka 2013-03-26 13:32:15
没错,因为你正在看的指南是针对不同API的API(这里的API是指'一组gem类和方法等',而不是yelp API - yelp API不关心你是什么宝石使用,他们的例子是旧的)。你需要阅读上面链接到的omniauth文档,了解如何使用omniauth gem进行API调用,这超出了这个问题的范围,并且已经[在其他地方]得到了答案(http://stackoverflow.com/questions/5675029 /如何使用的,omniauth对做认证的通话到服务)。 – omnikron 2013-03-26 13:40:31
这是Yelp API的omniauth策略,它需要一些更多的测试,浏览源代码,这可能会帮助你。 https://github.com/dhaneshnm/omniauth-yelp/。 – quixote 2013-12-02 15:16:20