仅使用一个Facebook请求检索用户名

时间:2015-07-27 17:27:46

标签: facebook-graph-api facebook-javascript-sdk

现在我正在开发一个项目,用于将用户名和用户ID存储在数据库中,而我正在使用Facebook javascript SDK。有没有办法只用一个请求检索两者?

目前我正在向facebook发送一个登录请求,它给了我一个带有用户ID的访问令牌,并向Graph API发出第二个请求,但是当我从第二个请求中唯一需要的东西时,发送两个请求似乎很浪费这个名字。

FB.getLoginStatus(function(response) {
if (response.authResponse) {
  FB.api('/me', function (resp) {
    console.log(resp);
      dbUtils.findOrCreateUser(response.authResponse.userID.toString(),resp.name, response);
  }); 
  } else { 
    AppActions.notLoggedIn(); 
  }
});

1 个答案:

答案 0 :(得分:1)

响应对象是固定的;您无法使用getLoginStatus()查询请求其他信息。这种设计有很多原因,但我认为最直接的动机是责任分离。 登录流程用于登录,图谱API用于图表!

幸运的是,getLoginStatus()可能实际上并没有在每次调用时都访问FB服务器。检查"往返于Facebook的服务器"在此页面上:https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus

由于您在数据库中拥有用户名,因此您可以在将来跳过该用户姓名的图表调用。所以最终,我认为这不是太大的开销。