2010-09-21 7 views
5

Gibt es ein fb-Tag, das ich verwenden kann, um meine HTML-Anker-Tag zu wickeln, so dass wenn der Benutzer nicht angemeldet ist, werden sie aufgefordert, sich vor dem Zugriff auf den Link einloggen?Facebook Connect erfordert Login für einige Links

Ich benutze Python/Django im Backend.

Danke, David

+0

Was ist das, iframe fb app? Oder eigenständige Site? – serg

+0

an diesem Punkt hat es nichts mit FB zu tun, genau wie jeder autorisierte Zugriffsprozess, wenn Sie eine gültige Sitzung fortfahren, andernfalls Prompt – ifaour

Antwort

0

Sie müssen lediglich eine if-Anweisung, ob eine Sitzung vorhanden facebook überprüfen oder nicht. Wenn nicht, leiten Sie sie zur Anmeldeseite weiter.

-Roozbeh

0

Zuerst Ich glaube, Sie ein Facebook-App erstellen müssen.

Zweitens: Wenn Sie in PHP programmieren, sollten Sie das PHP SDK verwenden.

See: https://developers.facebook.com/docs/reference/php/

Drittens: Verwenden getUser Methode: https://developers.facebook.com/docs/reference/php/facebook-getUser/

Ich bin fast sicher, dass getUser 0 zurück, wenn der Benutzer die App nicht akzeptiert hat, so IMO ist es nicht die Die beste Methode, um den Status der Benutzerverbindung auf Facebook zu finden.

Auch getLoginStatusUrl könnte helfen, mit dieser Funktion können Sie Umleitungen auf der Grundlage des Benutzerstatus auf Facebook, und denken Sie an einen Mechanismus, um die Inhalte zu zeigen oder nicht, basierend auf Parametern und Session-Variablen werden könnten (es ist eine Idee).

See: https://developers.facebook.com/docs/reference/php/facebook-getLoginStatusUrl/

Hoffnung, das hilft.

0

Mithilfe der JavaScript-API können Sie den Anker-Tag mit FB.getLoginStatus umschließen. Siehe https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

Beispiel von dieser Seite:

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
    // the user is logged in and connected to your 
    // app, and response.authResponse supplies 
    // the user's ID, a valid access token, a signed 
    // request, and the time the access token 
    // and signed request each expire 
    var uid = response.authResponse.userID; 
    var accessToken = response.authResponse.accessToken; 
    } else if (response.status === 'not_authorized') { 
    // the user is logged in to Facebook, 
    //but not connected to the app 
    } else { 
    // the user isn't even logged in to Facebook. 
    } 
}); 

Hinweis: Ich würde einfach diesen Anruf vorne und stelle meinen eigenen JS Variable boolean auf der Antwort, damit ich nicht den FB-API-Aufruf verwenden musste nochmal. Umschließen Sie dann jeden abhängigen Code mit einem einfachen JS-Booleschen Test.