Maison >interface Web >js tutoriel >Comment puis-je déterminer de manière fiable si un utilisateur de Facebook a aimé ma page à l'aide de JavaScript ?

Comment puis-je déterminer de manière fiable si un utilisateur de Facebook a aimé ma page à l'aide de JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-25 09:47:07354parcourir

How Can I Reliably Determine if a Facebook User Has Liked My Page Using JavaScript?

Détermination de l'affinité d'une page Facebook avec l'API JavaScript

Dans le contexte des applications iFrame, la tâche de vérifier si un utilisateur a « aimé » un une page Facebook particulière peut être rencontrée. Cependant, il n'est pas rare de rencontrer des incohérences lors de la tentative d'implémentation de cette fonctionnalité.

Considérez l'extrait de code suivant :

FB.api({
    method:     "pages.isFan",
    page_id:        my_page_id,
},  function(response) {
        console.log(response);
        if(response){
            alert('You Likey');
        } else {
            alert('You not Likey :(');
        }
    }
);

Lors de l'exécution de ce code, il donne un résultat déroutant de "False", même bien que l'utilisateur en question ait effectivement "liké" la page associée. Le coupable derrière cet écart réside dans la nécessité d'une autorisation étendue qui n'a pas été résolue.

Approche alternative utilisant une demande signée

Pour contourner ce problème et déterminer de manière fiable une le statut "J'aime" de l'utilisateur, une approche alternative utilisant le mécanisme de demande signée peut être utilisée. En activant l'option avancée « OAuth 2.0 for Canvas » dans Facebook, vous pouvez récupérer une demande signée avec chaque demande d'application d'onglet contenant des informations cruciales sur l'utilisateur, y compris son statut « J'aime » :

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;
  }
  if($signed_request = parsePageSignedRequest()) {
    if($signed_request->page->liked) {
      echo "This content is for Fans only!";
    } else {
      echo "Please click on the Like button to view this tab!";
    }
  }

Ceci La solution extrait la demande signée, la décode et examine la propriété « J'aime » de l'objet JSON analysé pour déterminer avec précision le statut « J'aime » de l'utilisateur pour votre page Facebook.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn