0

x 我一直在努力让 Twitter 使用 Ruby 进行身份验证,但我没有任何运气。

我的第一次尝试是这样的:

class TwitterController < ApplicationController

  def index
    @callback_url = "http://dev.twipler.com:3000/twitter/auth"
    @auth= TwitterOAuth::Client.new( :consumer_key => "xxx", :consumer_secret => "xxxxxxxxxxxxxxxxx" )
    @rtoken = @auth.request_token :oauth_callback => @callback_url
    @token = @rtoken.token
    @secret = @rtoken.secret
    @link = @rtoken.authorize_url
    session['token' ] = @token
    session['secret'] = @secret
    redirect_to @link
  end

  def auth
     @auth.authorize_from_request(session[:rtoken], session[:rsecret], params[:oauth_verifier])
  end
end

与 Twitter gem 非常相似的方式,直接与 OAuth gem 相同。无论 OAuth::Consumer::token_request 死于 401 错误。

因此,出于绝望,我尝试 git clone Snitter,添加我的 Twitter 凭据并尝试它,但它也因 401 而死。

我已经尝试使用 localhost:300/twitter/auth、http ://dev.twipler.com:3000/twitter/auth和 bit.ly 对于前 2 中的每一个。没有任何效果。

有什么帮助吗?

编辑:当然我会忘记做最合乎逻辑的事情并删除我的秘密。(他们已经改变了;))。

4

1 回答 1

2

您可能想要编辑您的消费者机密。这样,任何人都可以代表您的应用提出请求。

也就是说,请确保您的系统时间已同步到 ntp 服务器。如果您的系统时间变快或变慢,OAuth 请求将失败,因为它们包含时间戳和相对较短的 TTL。不久前我遇到了这个确切的问题

否则,您可以打开 oauth gem 并打开 HTTP 调试,这将显示完整的 HTTP 事务,包括返回的任何错误消息。

于 2010-08-24T00:39:43.880 回答