Je pense que je deviens fou. Je n'arrive pas à le faire marcher.
Je veux simplement vérifier si un utilisateur a aimé ma page avec javascript dans une iFrame
application.
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 :(');
}
}
);
Cela renvoie: False
Mais je suis fan de ma page, alors ne devrait-elle pas retourner true?!
Réponses:
J'ai aussi déchiré mes cheveux sur celui-ci. Votre code ne fonctionne que si l'utilisateur a accordé une autorisation étendue pour ce qui n'est pas idéal.
Voici une autre approche.
En un mot, si vous activez l'
OAuth 2.0
option avancée pour Canvas, Facebook enverra un$_REQUEST['signed_request']
avec chaque page demandée dans votre application d'onglet. Si vous analysez cette signature_request, vous pouvez obtenir des informations sur l'utilisateur, y compris s'il a aimé la page ou non.la source
signed_request
. C'est une approche dangereuse. Vous devriez le vérifier par rapport au secret de votre application. Vérifiez cette réponse pour plus d'informationsVous pouvez utiliser (PHP)
Cela renverra l'un des trois:
Je suppose que le seul moyen de ne pas utiliser de jeton pour y parvenir est avec la requête signée Jason Siffring qui vient d'être publiée. Mon assistant utilisant le SDK PHP:
la source
Vous pouvez le faire en JavaScript comme ceci (en vous basant sur la réponse de @ dwarfy à une question similaire ):
Où le fichier channel.html sur votre serveur contient juste la ligne:
Il y a une petite duplication de code là-dedans, mais vous voyez l'idée. Cela fera apparaître une boîte de dialogue de connexion la première fois que l'utilisateur visite la page (ce qui n'est pas exactement idéal, mais fonctionne). Lors des visites suivantes, rien ne devrait apparaître.
la source
Bien que cet article existe depuis un certain temps, les solutions ne sont pas du pur JS. Bien que Jason ait noté que la demande d'autorisations n'est pas idéale, je considère que c'est une bonne chose car l'utilisateur peut la rejeter explicitement. Je poste toujours ce code, bien que (presque) la même chose puisse également être vue dans un autre article par ifaour . Considérez ceci comme la version JS uniquement sans trop d'attention aux détails.
Le code de base est assez simple:
Alternativement, remplacez-le
me
par l'ID utilisateur approprié de quelqu'un d'autre (vous devrez peut-être modifier les autorisations ci-dessous pour ce faire, par exemplefriends_likes
) Comme indiqué, vous avez besoin de plus que l'autorisation de base:la source
J'utilise jquery pour envoyer les données lorsque l'utilisateur appuie sur le bouton J'aime.
Remarque: vous pouvez utiliser un texte d'entrée caché pour obtenir l'identifiant de votre bouton. Dans mon cas, je le prends à partir de l'url elle-même dans "var fbl_id = h_fbl [4];" car il y a l'exemple d'id: url: http://mywebsite.com/post/22/some-tittle
donc j'analyse l'url pour obtenir l'identifiant, puis je l'insère dans ma base de données dans le fichier like.php. de cette façon, vous n'avez pas besoin de demander des autorisations pour savoir si quelqu'un appuie sur le bouton J'aime, mais si vous voulez savoir qui appuie dessus, des autorisations sont nécessaires.
la source