仅通过对 Facebook 的一个请求检索用户名
Retrieving a user's name with only one request to Facebook
现在我正在开发一个将用户名和用户 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();
}
});
响应对象固定;您不能使用 getLoginStatus() 查询请求其他信息。这种设计有很多原因,但我认为最直接的动机是职责分离。 登录流程用于登录,图表API用于图表!
幸运的是,getLoginStatus() 实际上可能不会在每次调用时都访问 FB 服务器。检查此页面上的 "Roundtrips to Facebook's servers":https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus
并且由于您的数据库中将包含用户名,因此您以后可以跳过对该用户名的图形调用。所以最终,我认为这不是太大的开销。
现在我正在开发一个将用户名和用户 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();
}
});
响应对象固定;您不能使用 getLoginStatus() 查询请求其他信息。这种设计有很多原因,但我认为最直接的动机是职责分离。 登录流程用于登录,图表API用于图表!
幸运的是,getLoginStatus() 实际上可能不会在每次调用时都访问 FB 服务器。检查此页面上的 "Roundtrips to Facebook's servers":https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus
并且由于您的数据库中将包含用户名,因此您以后可以跳过对该用户名的图形调用。所以最终,我认为这不是太大的开销。