我正在使用推特宝石 https://github.com/sferik/twitter通过斯费里克。
我认为在控制器中存储我的 Twitter 应用程序的配置非常混乱:
class HomeController < ApplicationController
def index
require "twitter"
client = Twitter::REST::Client.new do |config|
config.consumer_key = "###"
config.consumer_secret = "###"
config.access_token = "###"
config.access_token_secret = "###"
end
@tweets = client.user_timeline( count: 2)
end
def show
end
end
我试图将其存储在 /config/initializers/twitter_creds.rb 中:
require "twitter"
client = Twitter::REST::Client.new do |config|
config.consumer_key = "###"
config.consumer_secret = "###"
config.access_token = "###"
config.access_token_secret = "###"
end
但我不确定这是否正确,或者我如何在控制器中访问 Twitter 客户端。我注意到一些开发人员使用 .yml 文件来存储配置文件。我正在寻求指导;最佳实践是什么以及如何从我的控制器访问 Twitter 客户端?
关于你的班级:
最好使用模块来封装 Twitter 逻辑。我会这样改变班级:
class HomeController < ApplicationController
include MyTwitterModule
def index
@tweets = user_timeline(2)
end
def show
end
end
该模块将是这样的:
require "twitter"
module MyTwitterModule
@@client = Twitter::REST::Client.new do |config|
config.consumer_key = "###"
config.consumer_secret = "###"
config.access_token = "###"
config.access_token_secret = "###"
end
def user_timeline(qt)
@@client.user_timeline(count: qt)
end
end
这只是一个建议;)
关于存储密钥和令牌:
存储此类信息的更好方法是使用 Rails.env,这样您可以使用不同的密钥或令牌进行开发和生产,并且它不存储在文件中。
看看这个gem https://github.com/bkeepers/dotenv,它可以帮助你。
我希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)