我有一个应用程序,我正在使用devise和omniauth实现身份验证.我已经找到了登录/退出等,我想知道的是,连接到用户图形api端点的最有效方法是初始化并准备好在我的应用程序中使用.
例如:如果在我想要的个人资料页面上,
profile_image = current_user.fbgraph.get_picture("me")
解决方法
您可以使用类似于
Koala的内容来完成此操作.在对用户进行身份验证时,您可以获取访问令牌.假设你已经跟随
Devise/Omniauth tutorial,你可以这样做:
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回调时登录.如果是,我认为请求是链接帐户.如果他们不是,我认为这是一个登录请求.