一旦我将oauth_token的一行添加到我的用户模型,任何注册Facebook的新用户 - 我都可以连接他们的Facebook api并获取他们的数据。但是,我的旧用户(在我安装Koala之前注册了)以及将oauth_token设置为nil的问题。如何为他们更新oauth_token,以便我可以像新用户一样连接facebook api?我在下面列出了我的相关代码。非常感谢你!
User.rb
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:facebook]
def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.email = auth.info.email
user.password = Devise.friendly_token[0,20]
user.username = auth.info.name
user.avatar = URI.parse(auth.info.image)
user.oauth_token = auth.credentials.token #Added this after learning about Koala
end
end
def facebook
@facebook ||= Koala::Facebook::API.new(self.oauth_token)
end
end