现在我正在开发一个项目,用于将用户名和用户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();
}
});
答案 0 :(得分:1)
响应对象是固定的;您无法使用getLoginStatus()查询请求其他信息。这种设计有很多原因,但我认为最直接的动机是责任分离。 登录流程用于登录,图谱API用于图表!
幸运的是,getLoginStatus()可能实际上并没有在每次调用时都访问FB服务器。检查"往返于Facebook的服务器"在此页面上:https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus
由于您在数据库中拥有用户名,因此您可以在将来跳过该用户姓名的图表调用。所以最终,我认为这不是太大的开销。