2013-02-07 7 views
5

私はレストランでキオスクで実行されるFacebookアプリケーションを持っており、ユーザーはチェックインすることができます。それは素晴らしい、彼らがログインし、必要なアクセス許可を受け入れる場合、それは彼らがわずかな問題なしで行われたときにログアウトすることができます。facebook oauthは許可を受け入れていないユーザーをログアウトできません

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

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

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

+0

私は、私は完全にあなたが話しているのか理解かどうかわからないんだけどabout ...あなたは、ユーザーアプリケーションを承認するか、拡張アクセス許可ダイアログでプロンプトが表示されたらキャンセルを押しましたか? – Lix

+1

承認を求めるプロンプトが表示されたら、キャンセルを押しました。 – jeremiah

+0

私はあなたと同じ問題を抱えています。解決策は見つかりましたか? – Jako

答えて

1

グラフapiの権限接続を使用して、ユーザーが特定のパーマを必要としているかどうかを判断する必要があります。彼らが持っていない場合は、スコープが追加されていないログインボタンまたはフローをレンダリングする条件として同じものを使用できます。

例:ログインボタンhtml5を含む現在のPHP sdkと現在のjs sdk。

*の例では、私は必要な権限としてmanage_pagesを使用しています。*

PHP SDKは、init 3.2.2。

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; ?> 
+0

残念ながら、それは私の場合は実際には動作しません。私の問題は、私がfacebookのログアウトを強制することができないということです。ログオンすると、アクセス許可要求が提示されます。彼らがキャンセルをクリックすると、facebookに送付せずにfacebookからログアウトする方法はありません。 お客様が他のウェブサイトにアクセスしないように(つまり、愚かな子供がポルノサイトを引っ張らないように)、キオスクはできるだけ頻繁にロックする必要があります。私はサイトのすべての他の部分をロックダウンしています。唯一の他の選択肢は、Firefoxを使用してキャンセル要素を削除するプラグインを作成することです。 – jeremiah

+0

これをもう一度見た人のために更新したかっただけです。 Firefoxのプラグインは、私が行かなければならなかったルートでした。 Facebookはこの問題の修正を拒否しています。 – jeremiah

関連する問題