Hen*_*hiu 2 ruby twitter ruby-on-rails oauth
我目前正处于从尝试通过 Twitter 登录的用户那里获取 oauth 令牌/秘密的处理的第 3 步。https://dev.twitter.com/docs/auth/implementing-sign-twitter
第 3 步告诉我将此请求发送到 API,但我不知道如何执行此操作。我目前同时拥有 oauth_token 和 oauth_verifier,但如何发送此 POST 请求以获取 oauth_token、oauth_token_secret 对?
是否有标准的 Oauth Ruby gem 可用于发送此 POST 请求?我在网上看到我传递一个 @accessToken 对象的例子,但我没有这样的对象可用。我只有 oauth_token 和 oauth_verifier(作为字符串)。鉴于这两件事,我如何将它们转换为 oauth_token 和 oauth_token_secret?
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
Run Code Online (Sandbox Code Playgroud)
尝试使用twitter和oauthgems类似以下的 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
Run Code Online (Sandbox Code Playgroud)
另见:http : //barkingiguana.com/2009/10/13/twitter-oauth-authentication-using-ruby/
| 归档时间: |
|
| 查看次数: |
2201 次 |
| 最近记录: |