2011-09-13 13 views
8

Ho un pulsante mi piace sul mio sito web (che è per gli utenti piace la pagina fan di fb).Come verificare se l'utente di IF ha GIÀ apprezzato la pagina di Facebook?

Se l'utente fa clic su Mi piace, controllo per vedere se il pari è stato attivato (sottoscrizione dell'evento), quindi visualizzarne del contenuto.

Che Vorrei davvero apprezzare aiutare con è il seguente:

Se l'utente è connesso a facebook E già come la pagina, lo voglio per visualizzare "Sei già un fan !" e mostra il contenuto. (Piuttosto che visualizzare il in grigio pulsante mi piace)

O

Se l'utente non è connesso a facebook e fare clic sul pulsante mi piace, lo voglio per visualizzare "Tu sei già un fan!" e mostra il contenuto. (piuttosto che visualizzare il pulsante in grigio)

modifica: Ragazzi, ho cercato questo su SO e ho trovato domande simili ma non proprio quello che sto cercando. Forse mi sbaglio, ma se qualcuno può fornire un link a uno che descrive il mio problema esatto, sarebbe molto più utile di un - sulla domanda. Ho controllato il seguente:
Check if the user is connected to facebook and then check if he liked a page
Facebook Like Box: How to detect if user already liked the page?
Facebook LIKE button hiding when page is already LIKED by user
How to check whether user has liked the page or not using php/javascript
Check if user already likes fanpage

+0

Non sono uno dei downvotes, ma le persone potrebbero essere più inclini ad aiutare se includi quel commento nella tua domanda; collega ad alcune domande che hai già provato e dì perché non aiutano, quindi la gente sa che hai già provato a farlo da solo. – Matt

+0

+1 @Matt: Grazie, l'ho aggiornato. – Gazzzzza

+0

possibile duplicato di [Come verificare se un utente apprezza la mia pagina Facebook o l'URL usando l'API di Facebook] (http://facebook.stackoverflow.com/questions/5093398/how-to-check-if-a-user-likes- my-facebook-page-or-url-using-facebooks-api) – Igy

risposta

3

Se si utilizza l'API facebook php. Mi è venuta in mente questa breve funzione che puoi includere nel file base_facebook.php nella classe BaseFacebook.

public function userIsFan() { 
    $sr = $this->getSignedRequest(); 
    if($sr && is_array($sr)){ 
     if(array_key_exists('page', $sr)){ 
      return $sr['page']['liked'] == 1; 
     } 
    } 
    return 0; 
} 
+4

Probabilmente è meglio estendere la classe BaseFacebook invece di modificarla, altrimenti la prossima volta che userai questa funzione in un progetto diverso ti chiedi perché improvvisamente non funziona quando prendi una nuova copia della classe base. In alternativa, se gli FB cambiano la loro classe base e si aggiorna, le funzioni personalizzate andranno perse (fidatevi, succede ...) – nealio82

+0

Questo non funziona più. Richiesta firmata non più ha informazioni sul gradimento della pagina. – lukyer

0

Assicurarsi che si sta utilizzando XFBML, Questo funziona per me

FB.Event.subscribe('auth.authResponseChange', function(response) { 
     FB.api('/me/likes/[page_id]', 
      function(response) { 
       //console.log(response); - see what the response is on your console. 
       if(response.data[0]) 
       //use script to display your content alert("Liked"); 
       else 
       // just do nothing, display like button alert("Not yet liked"); 
      } 
     ); 

    }); 

page_id sarà il non id il nome della pagina, per scoprire l'id, basta visitare http://graph.facebook.com/[your fb page name]

spero che questo aiuti qualcuno in futuro.

+1

Questo probabilmente richiede l'autorizzazione estesa 'user_likes' per funzionare. – ceejayoz

Problemi correlati