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
Libérer: 2024-11-25 09:47:07
original
325 Les gens l'ont consulté

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 :(');
        }
    }
);
Copier après la connexion

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!";
    }
  }
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal