twitter gem并传递用户名和密码

时间:2011-12-12 17:50:03

标签: ruby-on-rails twitter ruby-on-rails-3.1 gem

我正在使用位于此处的Twitter gem ... http://rubydoc.info/gems/twitter/2.0.2

我正在尝试使用需要身份验证的方法...... Twitter.home_timeline

http://rubydoc.info/gems/twitter/2.0.2/file/README.md处的rdoc自述文件状态......

  

某些方法需要身份验证。要获取您的Twitter OAuth凭据,请在http://dev.twitter.com/apps

注册应用

我已配置此文件并设置...

Twitter.configure do |config|
  config.consumer_key = YOUR_CONSUMER_KEY
  config.consumer_secret = YOUR_CONSUMER_SECRET
  config.oauth_token = YOUR_OAUTH_TOKEN
  config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET
end

现在我想要的是,用户可以访问我的应用程序,输入他们的屏幕名称和密码,然后在他们的用户上看到他们的直播和各种很酷的推特数据的显示。

请帮忙...我该怎么做?我用什么方法来传递网站访问者的用户名和密码?

......啊是的,我是铁杆菜鸟,所以请保持温柔。

1 个答案:

答案 0 :(得分:5)

我认为你误解了这一切是如何运作的。用户永远不会向您提供他们的Twitter用户名/密码。这是发生的事情:

  1. 用户登录您的网站
  2. 用户点击您在网站上创建的自定义“连接到Twitter”按钮(与OmniAuth等身份验证宝石相关联。请参阅此RailsCast以获取更多信息:http://railscasts.com/episodes/241-simple-omniauth
  3. 用户被带到Twitter,他们登录并(希望)授予您访问其信息的权利
  4. Twitter将用户重定向回您的网站并传回重要用户数据的散列,例如获取其信息所需的访问密钥
  5. 您保存从Twitter传回的相关用户信息,以便您可以访问他们的信息
  6. 现在您已经完成了这些步骤并且拥有用户必需的访问密钥(即令牌和令牌密钥),您可以获取他们的时间线信息:

    # Set all necessary auth info
    Twitter.consumer_key = TWITTER_CONSUMER_KEY_GOES_HERE
    Twitter.consumer_secret = TWITTER_CONSUMER_SECRET_GOES_HERE
    Twitter.oauth_token = current_user.token
    Twitter.oauth_token_secret = current_user.token_secret
    
    # Get the most recent tweets from the Timeline
    most_recent_tweets = Twitter.home_timeline