我在使用 facebook javascript sdk 的页面选项卡中有一个应用程序。当新用户使用该应用程序时,我会看到预期的“使用 facebook 登录”弹出窗口。我也有一些扩展权限,我在 FB.Login 的范围参数中添加了这些权限。用户使用 facebook 登录后,我看到了预期的扩展权限弹出窗口。唯一的问题是如果用户跳过扩展权限,对话会返回一个 access_token,但它对扩展权限无效。下面的代码示例。
window.fbAsyncInit = function () {
FB.Canvas.setAutoGrow();
FB.init({
appId: facebookAppId,
status: true, // check login status
});
function updateFBInfo(response) {
console.log('updateResp:');
if (response.authResponse) {
//user is already logged in and connected
FB.api('/me', function (info) {
displayUserInfo(info, response);
});
}
else {
FB.login(function (loginResponse) {
if (loginResponse.authResponse) {
FB.api('/me', function (info) {
displayUserInfo(info, loginResponse);
});
}
}, { scope: 'email,manage_pages,offline_access,publish_stream' });
}
}
FB.getLoginStatus(updateFBInfo);
};
我想我的问题是,我错过了什么(这一定很简单),或者有没有办法检查返回的 accesss_token 是否真的有效?