mli*_*nau 3 facebook facebook-graph-api facebook-javascript-sdk facebook-authentication
我在页面选项卡中有一个使用facebook javascript sdk的应用程序.当新用户访问该应用程序时,我会收到预期的"使用Facebook登录"弹出窗口.我也有一些扩展权限,我已经放在FB.Login的scope参数中.用户使用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);
};
Run Code Online (Sandbox Code Playgroud)
我想我的问题是,我错过了什么(这一定很容易),或者有没有办法检查并查看返回的acces_token是否真的有效?
在继续之前,您需要明确检查权限.如果他们没有提供必要的权限,FB.login()则需要再次显示必要的范围.
以下是检查权限的代码:
FB.api('/me/permissions', function (response) {
var perms = response.data[0];
// Check for publish_stream permission in this case....
if (perms.publish_stream) {
// User has permission
} else {
// User DOESN'T have permission. Perhaps ask for them again with FB.login?
}
} );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3420 次 |
| 最近记录: |