Ruby on rails Ruby和Twitter:从请求令牌获取访问令牌?
我目前正在处理从试图通过Twitter登录的用户处获取oauth令牌/密码的第3步 第3步告诉我将此请求发送到API,但我仍然无法确定如何发送。我目前拥有oauth_令牌和oauth_验证器,但是如何发送此POST请求以获取oauth_令牌、oauth_令牌和密钥对 有没有标准的Oauth Ruby gem可以用来发送此POST请求?我在网上看到传递@accessToken对象的例子,但我没有这样的对象。我只有oauth_令牌和oauth_验证器(作为字符串)。考虑到这两件事,我如何将它们转换为oauth_令牌和oauth_令牌密钥Ruby on rails Ruby和Twitter:从请求令牌获取访问令牌?,ruby-on-rails,ruby,twitter,oauth,Ruby On Rails,Ruby,Twitter,Oauth,我目前正在处理从试图通过Twitter登录的用户处获取oauth令牌/密码的第3步 第3步告诉我将此请求发送到API,但我仍然无法确定如何发送。我目前拥有oauth_令牌和oauth_验证器,但是如何发送此POST请求以获取oauth_令牌、oauth_令牌和密钥对 有没有标准的Oauth Ruby gem可以用来发送此POST请求?我在网上看到传递@accessToken对象的例子,但我没有这样的对象。我只有oauth_令牌和oauth_验证器(作为字符串)。考虑到这两件事,我如何将它们转换为
POST /oauth/access_token HTTP/1.1
User-Agent: themattharris' HTTP Client
Host: api.twitter.com
Accept: */*
Authorization: OAuth oauth_consumer_key="cChZNFj6T5R0TigYB9yd1w",
oauth_nonce="a9900fe68e2573b27a37f10fbad6a755",
oauth_signature="39cipBtIOHEEnybAR4sATQTpl2I%3D",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1318467427",
oauth_token="NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0",
oauth_version="1.0"
Content-Length: 57
Content-Type: application/x-www-form-urlencoded
oauth_verifier=uw7NjWHT6OJ1MpJOXsHfNxoAhPKpgI8BlYDhxEjIBY
是的,有一个与Twitter进行身份验证的方法。文件是直截了当的
我个人使用Omniauth与和集成访问Twitter,效果非常好
希望这有帮助,
Eugen是的,在Twitter上有身份验证功能。文件是直截了当的
我个人使用Omniauth与和集成访问Twitter,效果非常好
希望这有帮助,
Eugen的常见程序如下:
App Name
App Description
http://your_app_domain.zone:3000/
http://your_app_domain.zone:3000/auth/twitter/callback
Consumer key:
Consumer secret:
Access token:
Access token secret:
http://your_app_domain.zone:3000/auth/twitter
您将被重定向到twitter站点,并使用传递的oauth_令牌返回到您的站点一般程序如下:
App Name
App Description
http://your_app_domain.zone:3000/
http://your_app_domain.zone:3000/auth/twitter/callback
Consumer key:
Consumer secret:
Access token:
Access token secret:
http://your_app_domain.zone:3000/auth/twitter
您将被重定向到twitter站点,并使用传递的oauth_令牌返回到您的站点使用
twitter
和oauth
gems,尝试以下rails控制器操作:
def redirect
consumer = OAuth::Consumer.new(CONSUMER_KEY, CONSUMER_SECRET, {
:site => "https://api.twitter.com",
:scheme => :header
})
request_token = consumer.get_request_token(:oauth_callback => CALLBACK_URL)
session[:twitter_request_token] = request_token
redirect_to request_token.authorize_url #=> "https://api.twitter.com/oauth/authorize?oauth_token=XYZ"
end
def callback
request_token = session[:twitter_request_token]
access_token = request_token.get_access_token(:oauth_verifier => params[:oauth_verifier])
client = Twitter::REST::Client.new(
:consumer_key => CONSUMER_KEY,
:consumer_secret => CONSUMER_SECRET,
:access_token => access_token.token,
:access_token_secret => access_token.secret
)
twitter_user = client.user
redirect_to root_url # or do something with the twitter_user
end
另请参见:使用
twitter
和oauth
gems,尝试以下rails控制器操作:
def redirect
consumer = OAuth::Consumer.new(CONSUMER_KEY, CONSUMER_SECRET, {
:site => "https://api.twitter.com",
:scheme => :header
})
request_token = consumer.get_request_token(:oauth_callback => CALLBACK_URL)
session[:twitter_request_token] = request_token
redirect_to request_token.authorize_url #=> "https://api.twitter.com/oauth/authorize?oauth_token=XYZ"
end
def callback
request_token = session[:twitter_request_token]
access_token = request_token.get_access_token(:oauth_verifier => params[:oauth_verifier])
client = Twitter::REST::Client.new(
:consumer_key => CONSUMER_KEY,
:consumer_secret => CONSUMER_SECRET,
:access_token => access_token.token,
:access_token_secret => access_token.secret
)
twitter_user = client.user
redirect_to root_url # or do something with the twitter_user
end
另请参见:我的答案有用吗?我的答案有用吗?谢谢你今天的提醒!在def回调请求\u令牌=会话[:twitter\u请求\u令牌]中显示null。。我是不是错过了什么?谢谢你今天的安排!在def回调请求\u令牌=会话[:twitter\u请求\u令牌]中显示null。。我有什么遗漏吗?