我創建的Rails應用程序將允許我的Twitter應用程序(來自我的Twitter帳戶)發佈到用戶的時間表。目前,我有我的web應用這些設置應用:從我的應用程序發佈到其他用戶的Twitter帳戶
consumer_key
consumer_secret
access_token
access_token_secret
目前,在我的web應用程序用戶登錄後,產生了一些微博和帖子他們。帖子轉到我的Twitter帳戶。在授權回調之後,我的web應用程序能夠將secret
和token
設置爲從回撥回到用戶帳戶。我需要設置哪些密鑰和令牌以使我的Web應用程序在授權後發佈到另一個用戶的帳戶?
我正在使用這個gem從twitter返回一些哈希值:https://github.com/arunagw/omniauth-twitter#authentication-hash。
我的代碼如下所示: 配置/ secrets.yml
development:
secret_key_base: 69cc9e7ad45eadafe574hsaf5ba04a21c8bbe9337fb0cb73966bde47a397d72dd0963b29f6218d43c1baeca8bd0a74218e2e552c8d2ab5fdb7fef14
twitter_api_key: 2BN4jYtsf453374VM4m7HG
twitter_api_secret: LOE545ksfjkae3r8FOzj3NTHXVBfx8njPX0JHMNqCJs3mOnhQleH
test:
secret_key_base: 4c644a9f6d038388ec8ds3060177db7a6c342e4d12083cd36b0b7c3b6609eeb6771681c651c3eee3d740f9003103592sdafdsfaeDFHDGAd6c3e938bf
# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
配置/初始化/ twitter.rb
$twitter = Twitter::REST::Client.new do |config|
config.consumer_key = "2BN4jYtsf453374VM4m7HG"
config.consumer_secret = "LOE545ksfjkae3r8FOzj3NTHXVBfx8njPX0JHMNqCJs3mOnhQleH"
config.access_token = "714265291988058112-EkpjQvSeO6fQBc1ksHahlL8r6QLsYinA"
config.access_token_secret = "qFdiOIP6aozmBlPfsUEYvDK884jsfaehwOXqlFSf8J4g8bl0x"
end
account.rb
class Account < ActiveRecord::Base
before_save :capitalize_name
belongs_to :user
has_many :posts, dependent: :destroy
accepts_nested_attributes_for :posts
validates :account_name, :description, presence: :true
default_scope { order('created_at DESC') }
def self.find_or_create_from_auth_hash(auth_hash)
#account = where(provider: auth_hash.provider, uid: auth_hash.uid).first_or_create
account = where(id: id_goes_here).first_or_create
account.update_attributes!(
name: auth_hash.info.name,
profile_image: auth_hash.info.image,
token: auth_hash.credentials.token,
secret: auth_hash.credentials.secret,
uid: auth_hash.uid
)
account
end
private
def capitalize_name
self.account_name = self.account_name.split.map { |name| name.capitalize }.join(" ")
end
end
目前我軌即使其他用戶登錄,獲取授權並獲得令牌,應用也會始終發佈到我的帳戶以及從授權回調中設置在THEIR賬戶中的祕密。這不是我想要的。
PS:這裏發佈的密鑰都是假的。
所以在這種情況下,我明白了'config.consumer_key'和'config.consumer_secret'總是固定的,這將是關鍵和祕訣,我的Twitter應用程序,使得在推特上代表用戶權利?所以消費者的密鑰和我的twitter應用程序的祕密,訪問令牌和訪問令牌的祕密用戶代表用戶的密碼? – Emanuel
是的,確切地說。 'access_token'和'access_token_secret'是用戶特定的 – stve