2012-04-05 14 views
2

Ich habe den folgenden Code:Facebook PHP SDK 3.1.1 Endlosschleife

$facebook = new Facebook(array('appId' => $FB_APP_ID, 
          'secret' => $FB_APP_KEY, 
          'cookie' => true)); 
$fb_sess = $facebook->getUser(); 

if (empty($fb_sess)) { 

    $url = $facebook->getLoginUrl(array('response_type'=>'token', 
             'scope' => 'email')); 
    header("Location: $url"); 

} 

$me = $facebook->api('/me'); 
... 

Das Problem ist, dass $ fb_sess ist immer 0, so empty ($ fb_sess) immer wahr ist, und so die Umleitung auf die Login-URL wiederholt endlos. Meine App scheint korrekt konfiguriert zu sein und ich benutze das neueste PHP SDK. Irgendwelche Hinweise, um das zu beheben oder zumindest eine Vorstellung davon zu bekommen, was passiert?

Antwort

0

Sie fehlen redirect_uri param. hinzufügen redirect_uri

$params = array(
'scope' => 'email', 
    'response_type'=>'token', 
'redirect_uri' => 'http url after login', 
); 

dies also nach dem Login bestätigen wird nur der Benutzer auf die Seite zurückgeführt wird.

+0

können Sie Ihre $ url hier posten? – Madan

+0

https://www.facebook.com/dialog/oauth?client_id=397110206974921&redirect_uri=http%3A%2F%2Fwww.mywebsite.tld%2Ffbtest.php%3Fstate=044eb4138538b7518dcbdef336c986b3&scope=email –

+0

Diese Antwort ist nicht korrekt. 'redirect_uri' ist optional und wird, wenn nicht definiert, standardmäßig auf die Seite gesetzt, auf der die Methode ursprünglich ausgeführt wurde. https://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/ –

0

Ich weiß, diese Frage ist alt, aber ich werde es beantworten, falls jemand von Google kommt (wie ich).

Zunächst einmal kommentieren Sie diese Zeile:

header("Location: $url");

und ersetzt ihn durch etwas wie folgt aus:

echo "the user appears to be empty try to <a href=".$url.">login</a>";

diese Weise können Sie die Gelegenheit haben, um zu sehen, ob es eine ist Problem und der Benutzer wird nicht in einer endlosen Umleitung Schleife verloren gehen. Höchstwahrscheinlich wird die Fehlermeldung an die URL angehängt wird, wird es in etwa so aussehen:

error_code=901&error_message=This+app+is+in+sandbox+mode.++Edit+the+app+configuration+at+http%3A%2F%2Fdevelopers.facebook.com%2Fapps+to+make+the+app+publicly+visible

Das Problem in diesem Beispiel ist die App im Sandbox-Modus ist.

Verwandte Themen