私のアプリでは、ユーザーに FB に接続してもらい、アプリのアクセス許可を付与します。
Connect ボタンをクリックすると、FB ポップアップが表示され、"Login with facebook" が表示されます。次に、publish_stream、manage_pages、email への許可を付与する必要があります。
私が自分のコードで抱えている問題は、アクセス許可の 1 つ ( manage_pages など) を削除しても、 checkLoginStatus を使用してもユーザーは続行できることです。
では、ユーザーが要求されたアクセス許可を付与したことを確認するにはどうすればよいですか?
<div id="fb-root"></div>
<script src="//connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
FB.init({
appId: '<?=FB_APP_ID?>',
status: true,
cookie: true
});
FB.getLoginStatus(checkLoginStatus);
function authUser() {
FB.login(checkLoginStatus, {scope:'publish_stream, manage_pages, email'});
}
function checkLoginStatus(response) {
if(response && response.status == 'connected') {
$('#connbut').hide();
FB.api('/me', function(user) {
if (user) {
$('#fbuser-name').text(user.name);
$('#fbuserpict').attr('src', 'https://graph.facebook.com/' + user.id + '/picture');
$('#fbname').val(user.name);
$('#fbpict').val('https://graph.facebook.com/' + user.id + '/picture');
}
});
} else {
// Display the login button
$('#connbut').show();
}
}
</script>