我有一个应用程序,我在其中使用设计和omniauth 实现身份验证。我已经弄清楚了登录/注销等问题,我想知道的是,什么是连接到用户图形 api 端点的最有效方式,并已初始化并准备好在我的应用程序中使用。
例如:如果在个人资料页面上我想做,
profile_image = current_user.fbgraph.get_picture("me")
我将如何以最少的 API 调用来完成此任务(我将在整个应用程序中使用类似的调用)
我有一个应用程序,我在其中使用设计和omniauth 实现身份验证。我已经弄清楚了登录/注销等问题,我想知道的是,什么是连接到用户图形 api 端点的最有效方式,并已初始化并准备好在我的应用程序中使用。
例如:如果在个人资料页面上我想做,
profile_image = current_user.fbgraph.get_picture("me")
我将如何以最少的 API 调用来完成此任务(我将在整个应用程序中使用类似的调用)
您可以使用Koala 之类的工具来完成此操作。当您对用户进行身份验证时,您可以获取访问令牌。假设您已遵循设计/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 的回调到来时,我会检查用户是否已登录。如果是,我假设请求是链接帐户。如果不是,我认为这是一个登录请求。