5

私のレストランのキオスクで実行されるFacebookアプリケーションがあり、ユーザーはチェックインできます。これはうまく機能します。ログインして必要な権限を受け入れると、問題なく完了したときにログアウトできるようになります。

ただし、権限を受け入れない場合、ログアウトする方法は機能しません。私は考えられるすべてのことと、stackoverflowで見つけたすべての投稿を試しました。

authにユーザーからの許可がない場合、どうすれば顧客をログアウトできますか?

私はバグレポートを使用してこれをFacebookに報告しました、彼らはそれを調査していると述べました。ここにいる天才の一人がアイデアを持っていたらいいのにと思います。

4

1 に答える 1

2

グラフ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; ?>
于 2013-02-11T02:23:26.083 に答える