我是一名新手开发者,对文档有点神秘/不堪重负。我想知道如何在Rails 3.1应用程序中实现Twitter gem。
我安装了gem并知道我需要配置它,但是我将这个配置信息放在rails应用程序中的哪个位置? 是否需要以某种方式进行更改以使其与rails应用同步?
Twitter.configure do |config|
config.consumer_key = ENV['CONSUMER_KEY']
config.consumer_secret = ENV['CONSUMER_SECRET']
config.oauth_token = ENV['ACCESS_TOKEN']
config.oauth_token_secret = ENV['TOKEN_SECRET']
end
我必须在任何地方要求'推特'吗?
如果我希望我的应用的访问者从我的应用更新其状态,我是否必须安装Omniauth?或者这个宝石是否足够?即如果我在gem文件中需要'twitter'并进行捆绑安装,捆绑商会处理我需要的所有内容吗?
答案 0 :(得分:0)
第一个问题,你在使用装饰吗?如果你是,这应该更容易,因为我正在用devise + omniauth + twitter构建我自己的应用程序。如果你不是,即使我自己是一个新手轨道开发人员,我会试着引导你走正确的道路。
对于初学者,你应该有一个推特账号。然后,您应该登录here并创建您的应用。在Settings
标签中,您可以选择您希望用户的Twitter帐户访问或权限的类型。就我而言,我正在使用Read only
,也就是说,我只使用Twitter进行身份验证。由于您可能希望用户更新其状态,因此您可能需要查看其他两个选项:Read and Write
和Read, Write and Access direct messages
。您还应该定义一个回调URL,这是Twitter成功验证后返回的位置。然后你有几个美容选项来完善你的oauth对话框。
在Details
标签中,您会找到您不应透露的Consumer key
和Consumer secret
以及您在Rails应用中需要的内容。
在您的应用中,您应该包含这些宝石(之后运行bundle install
):
#Gemfile
gem 'omniauth'
gem 'omniauth-twitter'
然后,在初始化程序中,您应该创建一个名为omniauth.rb
的文件(您可以随意调用它,但它是标准的),其中包含以下内容:
#config/initializers/omniauth.rb
require 'omniauth-twitter'
config.omniauth :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET']
在我的情况下,由于我正在使用设计,我将其包含在我的devise.rb
文件中,但只要它在{{1}的文件中,它包含在哪里并不重要}目录。
您一定要查看以下网站: