Ruby on rails 如何用yelpapi修复omniauth错误?

Ruby on rails 如何用yelpapi修复omniauth错误?,ruby-on-rails,omniauth,gemfile,Ruby On Rails,Omniauth,Gemfile,我正在尝试在我的Rails应用程序中使用YelpAPI,但在这样做时遇到了问题。我正在按照这里的文档()进行操作,但不断得到一个错误。下面是我在控制器中使用的代码: require 'rubygems' require 'oauth' consumer_key = 'private' consumer_secret = 'private' token = 'private' token_secret = 'private-private'

我正在尝试在我的Rails应用程序中使用YelpAPI,但在这样做时遇到了问题。我正在按照这里的文档()进行操作,但不断得到一个错误。下面是我在控制器中使用的代码:

    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
我的gem文件中有gem'omniauth',并且已经运行了bundle安装(以及重新启动服务器),但是仍然出现了这个错误…关于如何解决这个问题有什么想法吗

档案:

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
根据,您应该要求“omniauth”,而不是“oauth”

您应该运行:

sudo gem install oauth

或者在gem文件中添加gem
oauth

当我这样做时,我会得到一个错误:uninitialized constant PlacesController::OAuth。YelpAPI似乎已经过时(2年了),仍然使用OAuth而不是Omniauth。我该如何解决这个问题呢?是的,因为您正在查看的指南是针对具有不同API的不同gem(这里的API表示“一组gem类和方法等”),而不是yelp API-yelp API不关心您使用的是什么gem,它们的示例只是旧的)。您需要阅读我在上面链接的omniauth文档,了解如何使用omniauth gem进行API调用,这有点超出了这个问题的范围,并且已经得到了回答。下面是一个针对Yelp API的omniauth策略。它还需要一些测试,请浏览源代码,这可能会对您有所帮助。