[英]Can't get my access_token using Rails and the OAuth gem
我发展我的Rails 3应用程序,使用Twitter的OAuth的和我得到的麻烦,因为显然我不能拿到的access_token,点击“允许”和Twitter重定向我回到我的应用程序URL,当我去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
请帮助,告诉我我的错误在哪里,感谢您的关注!
罗德里戈·阿尔维斯·维埃拉(Rodrigo Alves Vieira)。
我不确定代码的哪一部分不起作用,可能与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 json
并在顶部require 'json'
)
希望有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.