Вы можете сделать это, используя что-то вроде Коала . Когда вы аутентифицируете пользователя, вы можете получить токен доступа. Предполагая, что вы следовали учебнику Devise / Omniauth , вы можете сделать что-то вроде этого:
def self.find_for_facebook_oauth(response, signed_in_resource=nil)
data = response['extra']['user_hash']
access_token = response['credentials']['token']
user = User.find_by_email(data["email"])
# only log in confirmed users
# that way users can't spoof accounts
if user and user.confirmed?
user.update_attribute('fb_access_token', access_token)
user
end
end
Получив токен доступа, вы можете сделать что-то вроде:
@graph = Koala::Facebook::API.new(@user.fb_access_token)
profile_image = @graph.get_picture("me")
В моем приложении я проверяю, вошел ли пользователь в систему при поступлении обратного вызова из Facebook. Если они есть, я предполагаю, что запрос был связать учетные записи. Если это не так, я предполагаю, что это запрос на вход в систему.