グラフAPIの権限接続を使用して、ユーザーが必要な特定の権限を与えているかどうかを判断する必要があります。そうでない場合は、条件と同じように使用して、スコープを追加せずにログインボタンまたはフローをレンダリングできます。
今後の例:現在のphp sdk、およびログインボタンhtml5を備えた現在のjssdkが含まれます。
*この例では、必要な権限としてmanage_pagesを使用しています。*
PHP SDK3.2.2init。
require '../../src/facebook.php';
$facebook = new Facebook(array(
'appId' => '1111111111111111',
'secret' => 'xxxxxxxxxxxxxxxx',
'cookie' => true, // enable optional cookie support
));
try { $user = $facebook->getUser(); } catch (FacebookApiException $e) { };
PHPコード:
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_accounts = $facebook->api('/me/?fields=permissions');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
PHPの条件とHTML5ログインボタン
<div id="fb-root"></div>
<script>// current js sdk</script>
<?php if($user && !$user_accounts[permissions][data][0][manage_pages]): ?>
// we know we have a user but no perms so lets render button with out scope.
<div class="fb-login-button" data-autologoutlink="true" data-show-faces="false" data-width="200" data-max-rows="1" data-size="large"></div>
<?php elseif($user && $user_accounts[permissions][data][0][manage_pages]): ?>
// we know we have a user and they have given perms so render button with scope.
<div class="fb-login-button" data-autologoutlink="true" data-show-faces="false" data-width="200" data-max-rows="1" data-size="large" data-scope="manage_pages"></div>
<?php elseif(!$user): ?>
// we have no user, flow as new user... or provide 2 buttons lol.
<div class="fb-login-button" data-autologoutlink="true" data-show-faces="false" data-width="200" data-max-rows="1" data-size="large" data-scope="manage_pages"></div>
<?php endif; ?>