2013-02-07 3 views
5

Ich habe eine Facebook-Anwendung, die in einem Kiosk in meinem Restaurant läuft, ermöglicht es Benutzern, einzuchecken. Das funktioniert großartig, wenn sie sich anmelden und die erforderlichen Berechtigungen akzeptieren, dann können sie sich ausloggen, wenn sie ohne das geringste Problem fertig sind.facebook oauth kann sich nicht abmelden Benutzer, der keine Berechtigungen akzeptiert

Wenn sie jedoch die Berechtigungen nicht akzeptieren, wird keine Methode zum Abmelden funktionieren. Ich habe alles versucht, was mir einfiel, und jeden Beitrag, den ich auf Stackoverflow finden konnte.

Wie kann ich den Kunden abmelden, wenn Auth nicht die Erlaubnis des Benutzers hat?

Ich habe dies auf Facebook mit dem Bug-Report berichtet, haben sie festgestellt, dass sie in sie suchen. Hoffentlich hat eines der Genies hier eine Idee.

+0

Ich bin mir nicht sicher, ob ich voll und ganz verstehen, was Sie reden über ... Meinst du das der Benutzer? Drücken Sie Abbrechen, wenn Sie aufgefordert werden, Ihre Anwendung zu autorisieren oder in einem erweiterten Erlaubnisdialog? – Lix

+1

Sie drückten Abbrechen, wenn Sie aufgefordert wurden, zu autorisieren. – jeremiah

+0

Ich habe das gleiche Problem mit dir. Hast du irgendwelche Lösungen gefunden? – Jako

Antwort

1

Sie sollten die Berechtigungen Verbindung in der Grafik-API verwenden, um zu bestimmen, ob Benutzer bestimmte perms benötigt gegeben hat. Wenn dies nicht der Fall ist, können Sie dasselbe als Bedingung verwenden, um eine Anmeldeschaltfläche oder einen Flow ohne den hinzugefügten Bereich darzustellen.

Beispiel kommt: enthält, aktuellen PHP-sdk, und aktuellen js sdk mit html5 Login-Button.

* im Beispiel i manage_pages als Erlaubnis benötigt verwenden. *

PHP SDK 3.2.2 init.

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-Code:

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 Bedingungen und Login-Button 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

Leider funktioniert das in meinem Fall nicht. Mein Problem ist, dass ich sie nicht zwingen kann, sich von Facebook abzumelden. Bei der Anmeldung erhalten sie die Berechtigungsanfrage. Wenn sie auf Abbrechen klicken, gibt es keine Möglichkeit, sie von Facebook abzumelden, ohne sie an Facebook zu senden. Der Kiosk muss so stark wie möglich gesperrt werden, um Kunden daran zu hindern, andere Websites zu besuchen (d. H., Dumme Kinder davon abzuhalten, Pornoseiten aufzuziehen); Ich habe jedes zweite Stück der Website gesperrt. Die einzige andere Möglichkeit besteht darin, ein Plugin für Firefox zu schreiben, um das cancel-Element mit dem dom zu entfernen. – jeremiah

+0

Ich wollte nur aktualisieren, falls jemand das jemals wieder gesehen hat. Das Firefox-Plugin war die Route, die ich gehen musste. Facebook weigert sich, dieses Problem zu beheben. – jeremiah

Verwandte Themen