无法使用Rails和OAuth gem获取我的access_token

时间:2010-08-07 00:21:38

标签: ruby-on-rails ruby authentication twitter oauth

我正在开发使用Twitter OAuth的Rails 3应用程序而且我遇到了麻烦,因为显然我无法获得access_token,点击“允许”并将Twitter重定向回我的应用程序网址,当我去推特时。 com / settings / connections我无法在授权的情况下看到我的应用程序。我想我的控制器有问题,我希望你能指出它们:

class OauthController < ApplicationController
  def start
    request_token = client.get_request_token(:oauth_callback => 'http://localhost:3000')
    session[:request_token] = request_token.token
    session[:request_token_secret] = request_token.secret
    redirect_to request_token.authorize_url
  end

  def callback
    @access_token = client.get_access_token(:oauth_verifier => params[:oauth_verifier])
    render :json => access_token_get('https://api.twitter.com/account/verify_credentials.json')
  end

  protected 

  def client
    @consumer = OAuth::Consumer.new(
      'key','secret',
      :site => 'https://api.twitter.com',
      :authorize_url => 'https://api.twitter.com/oauth/authorize',
      :access_token_url => 'https://api.twitter.com/oauth/access_token'
    )
  end
end

请帮忙,告诉我我的错误在哪里,谢谢你的关注!

罗德里戈·阿尔维斯·维埃拉。

1 个答案:

答案 0 :(得分:0)

我不确定你的代码的哪一部分不起作用,可能与access_token_get方法有关,但我会告诉你我是如何做到的 - 也许它会帮助..

在你初始化@access_token的行之后,我做了类似的事情:

@response = client.request(:get, "/account/verify_credentials.json", @access_token, { :scheme => :query_string })
case @response
when Net::HTTPSuccess
  user_info = JSON.parse(@response.body)
  unless user_info['screen_name']
    # authentication failed, error handling
  end
  # We have an authorized user, save the information to the database using @access_token.token and @acess_token.secret
else
  # error handling
end

(哦,我正在使用json gem,所以请确保gem install jsonrequire 'json'位于顶部)

希望有所帮助!