2011-09-16 2 views
-1

Je voudrais changer le contenu de ma page, lorsque l'utilisateur clique sur un bouton similaire (il recharge directement la page avec le nouveau contenu).Contenu pas de fan au contenu fan

Je peux le faire, mais seulement si je clique sur le bouton de connexion d'abord pour obtenir les informations de base de mon compte. Je ne veux pas exiger cette étape. Un exemple de ce que je veux est https://www.facebook.com/Dior (onglet Dior VIII).

Répondre

0

Il existe une méthode nommée getSignedRequest(). Appelez cette méthode. Cette méthode retourne si l'utilisateur actuel est déjà fan de la page Facebook ou non:

$faceboook->getSignedRequest() 
0

Vous aurez besoin de mettre en œuvre une routine en utilisant l'un des SDKs. Facebook transmet une requête soi-disant signée à toutes les applications de canevas et à celles qui s'exécutent dans un iframe. Entre autres choses, il comprend les informations si l'utilisateur actuel a aimé la page. Vous devez récupérer les informations et vérifier le statut similaire.

Pour PHP ce serait quelque chose comme ceci:

<?php 
require(facebook.php); // include Facebook PHP SDK 

$app_id = "your_app_id"; 
$app_secret = "your_app_secret"; 

$facebook = new Facebook(array(
    'appId' => $app_id, 
    'secret' => $app_secret, 
    'cookie' => true 
)); 

$signed_request = $facebook->getSignedRequest(); 

if($signed_request = $this->parsePageSignedRequest()) { 
    if($signed_request->page->liked) { 
    // output fan content 
    } else { 
    // output non-fan content 
    } 
} 

function parsePageSignedRequest() { 
    if (isset($_REQUEST['signed_request'])) { 
    $encoded_sig = null; 
    $payload = null; 
    list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2); 
    $sig = base64_decode(strtr($encoded_sig, '-_', '+/')); 
    $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true)); 
    return $data; 
    } 
    return false; 
} 
?> 
0

Il y a une façon beaucoup plus facile de le faire en utilisant FB.Event.Subscribe and edge.create. Le code JavaScript est dans http://fivespot.me/like-reveal-simple.txt.

Ajoutez ceci à votre page d'atterrissage, changez l'ID d'application et le lien que vous voulez rediriger après que l'utilisateur aime où il est dit yoursite.com/afterlike.html.

C'est le moyen le plus simple et le plus efficace de le faire.

0

Une page reçoit une demande signée. Décodez ceci pour savoir si l'utilisateur a aimé la page. En PHP:

<?php 
    $signedRequestObject = parse_signed_request($_POST["signed_request"],YOUR_APPLICATION_SECRET); 

    if ($signedRequestObject["page"]){ 
     // This means this signed_request was generated on a page. 
     if ($signedRequestObject["page"]["liked"]){ 
      // the page was liked 
     } 
    } 

    //Used functions 
    function parse_signed_request($signed_request, $secret) { 
     list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
     $sig = $this->base64_url_decode($encoded_sig); 
     $data = json_decode($this->base64_url_decode($payload), true); 
     if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') { 
      echo 'Unknown algorithm. Expected HMAC-SHA256 : '; 
      return false; 
     } 
     $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true); 
     if ($sig !== $expected_sig) { 
      echo = 'Bad Signed JSON signature!'; 
      return false; 
     } 
     return $data; 
    } 

    function base64_url_decode($input) { 
     return base64_decode(strtr($input, '-_', '+/')); 
    } 
?>