[英]Variable declaration - Twitter API Ruby on Rails
我正在為我的項目使用Twitter API 。 當用戶使用Twitter登錄時,我按照文檔所述設置了配置。
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :authenticate_user!
before_action :set_twitter_client
private
def set_twitter_client
if user_signed_in?
@twitter_client = Twitter::REST::Client.new do |config|
config.consumer_key = "xxx"
config.consumer_secret = "xxx"
config.access_token = current_user.token
config.access_token_secret = current_user.token_secret
end
end
end
end
但是,每次用戶加載頁面時,都會調用此聲明,並且最終導致配額溢出,這很煩人。 我試圖只聲明一次此變量,然后將其存儲在會話變量中,但它不起作用。
所以我的問題是,聲明此配置變量的最佳方法是什么? 是否可以為每個連接的用戶聲明一次並將其存儲在某個地方? 還是每次用戶加載新頁面時都需要重新調用它?
我建議為您的配置使用初始化程序。 當rails啟動時,config / initializers中的任何內容都將運行一次,這為配置/連線提供了一個中心位置。 例如在config / initializers / twitter_initializer.rb中:
TwitterClient = Twitter::REST::Client.new do |config|
config.consumer_key = ENV["TWITTER_CONSUMER_KEY"]
config.consumer_secret = ENV["TWITTER_CONSUMER_SECRET"]
config.access_token = ENV["TWITTER_ACCESS_TOKEN"]
config.access_token_secret = ENV["TWITTER_ACCESS_SECRET"]
end
然后在您的控制器中,您可以隨處使用TwitterClient進行API調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.