2010-09-21 11 views
5

Esiste un tag fb da utilizzare per avvolgere il mio tag di ancoraggio html in modo che se l'utente non ha effettuato l'accesso, verrà richiesto di accedere prima di ottenere l'accesso al collegamento?Facebook Connect richiede l'accesso per alcuni collegamenti

Sto usando python/django nel backend.

Grazie, David

+0

Che cos'è questa iframe fb app? O sito autonomo? – serg

+0

a questo punto non ha nulla a che fare con FB, proprio come qualsiasi processo di accesso autorizzato, se si ha una sessione valida procedere, altrimenti richiedere – ifaour

risposta

0

è sufficiente un'istruzione if per verificare se una sessione di facebook esiste o non. Se non li reindirizza alla pagina di accesso.

-Roozbeh

0

In primo luogo penso che è necessario creare una Facebook App.

Secondo: se si sta programmando in PHP, è necessario utilizzare l'SDK PHP.

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

Terzo: Usa getUser metodo: https://developers.facebook.com/docs/reference/php/facebook-getUser/

Sono quasi sicuro che getUser restituirà 0 se l'utente non ha accettato la vostra applicazione, in modo da IMO è non è il metodo migliore per trovare lo stato della connessione utente su Facebook.

Inoltre, getLoginStatusUrl potrebbe aiutare, con questa funzione si potrebbe fare redirezioni in base allo stato dell'utente su Facebook, e pensare a un meccanismo per mostrare o meno il contenuto sulla base di parametri e variabili di sessione (è un'idea).

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

Speranza che aiuta.

0

Utilizzando l'API JavaScript si vorrà utilizzare FB.getLoginStatus per avvolgere il tag di ancoraggio. Vedere https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

Esempio da quella pagina:

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. 
    } 
}); 

Nota: Vorrei semplicemente effettuare questa chiamata in anticipo e impostare la mia booleana variabile JS sulla risposta quindi non ho dovuto usare la chiamata API FB ancora. Quindi avvolgi qualsiasi codice dipendente con un semplice test booleano JS.

Problemi correlati