Facebook comment faire pour vérifier si l'utilisateur a aimé la page et d'afficher le contenu?
Je suis en train de créer un Facebook iFrame app. L'application doit d'abord montrer une image et si l'utilisateur aime la page, il va obtenir l'accès à certains contenus.
- Je utiliser RoR, donc je ne peux pas utiliser le Facebook SDK PhP.
Voici mon iFrame HTML lorsque l'utilisateur n'a pas aimé la page:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<style type="text/css">
body {
width:520px;
margin:0; padding:0; border:0;
font-family: verdana;
background:url(repeat.png) repeat;
margin-bottom:10px;
}
p, h1 {width:450px; margin-left:50px; color:#FFF;}
p {font-size:11px;}
</style>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
</head>
<body>
<div id="container">
<img src="welcome.png" alt="Frontimg">
</div>
Et, si l'utilisateur a aimé la page:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<style type="text/css">
body {
width:520px;
margin:0; padding:0; border:0;
font-family: verdana;
background:url(repeat.png) repeat;
margin-bottom:10px;
}
p, h1 {width:450px; margin-left:50px; color:#FFF;}
p {font-size:11px;}
</style>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
</head>
<body>
<div id="container">
<img src="member.png" alt="Frontimg">
<p>You liked this page</p>
- Pouvez-vous utiliser le FB API JS ?
- Oui je sais th FB JS SDK, Mais je ne sais pas comment l'utiliser
- 2 autres questions avant de me donner un coup de feu : Est-il vraiment des informations sensibles ? Parce que l'on approche en montrant un div avec js si l'utilisateur aime la page et montrant une autre div si l'utilisateur n'aime pas la page (les deux divs étant caché dans la page de démarrage), de sorte que quelqu'un puisse l'afficher avec firebug ou quelque chose d'autre et de voir votre contenu. Une autre approche consiste à extraire le contenu des deux divs en ajax qui est plus "secure". Aussi ce librairie JS utilisez-vous je suis un jquery'ist, je peux donc utiliser jquery ?
- Je suis également à l'aide de Jquery
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR 21/11/2012
@TOUS : j'ai mis à jour l'exemple pour que cela fonctionne le mieux et tient les comptes de remarques de la part de Chris Jacob et FB Meilleures pratiques, avoir un regard d'exemple de travail ici
Salut, Alors comme promis voici ma réponse à l'aide de javascript :
Le contenu du CORPS de la page :
Le CSS :
Et enfin le javascript :
Donc ce pour quoi faire ?
Premier il a des connexions pour FB (si vous avez déjà l'ID d'UTILISATEUR, et vous êtes sûr que votre utilisateur est déjà connecté à facebook, vous pouvez contourner le login des trucs et de les remplacer
response.session.uid
avec YOUR_USER_ID (à partir de votre application rails, par exemple)Après que cela fait une FQL requête sur le
page_fan
table, et le sens est que si l'utilisateur est un fan de la page, il renvoie l'id de l'utilisateur et sinon il renvoie un tableau vide, après que, et selon les résultats de son spectacle un div ou l'autre.Il y a aussi un travail de démonstration ici : http://jsfiddle.net/dwarfy/X4bn6/
C'est à l'aide de la coca-cola page comme un exemple, essayez d'aller et comme/contrairement à le coca-cola page et l'exécuter à nouveau ...
Enfin quelques docs :
FQL page_fan table
FBJS FB.Les données.requête
N'hésitez pas si vous avez n'importe quelle question ..
Acclamations
Mise à JOUR 2
Comme indiqué par quelqu'un, jQuery est nécessaire pour la version javascript de travail, MAIS vous pouvez facilement l'enlever (il n'est utilisé que pour le document.prêt et afficher/masquer).
Pour le document.prêt, vous pouvez envelopper votre code dans une fonction et l'utilisation
body onload="your_function"
ou quelque chose de plus compliqué, comme ici : Javascript - Comment détecter si le document est chargé (IE 7 et Firefox 3) de sorte que l'on remplace le document de prêt.Et de les afficher et de masquer des choses que vous pourriez utiliser quelque chose comme :
document.getElementById("container_like").style.display = "none" or "block"
et une plus grande fiabilité de la croix-navigateur techniques voir ici : http://www.webmasterworld.com/forum91/441.htmMais jQuery est tellement facile 🙂
Mise à JOUR
Relativement au commentaire que j'ai posté ci-dessous voici quelques portions de code à décoder le "signed_request" que facebook publier sur votre TOILE URL lorsqu'il extrait pour l'affichage à l'intérieur de facebook.
Dans votre contrôleur d'action :
Et puis c'est une question de vérification de la demande décodée et l'affichage d'une page ou d'une autre .. (Pas sûr à ce sujet, je ne suis pas à l'aise avec ruby)
Et ici est le Canevas de la Classe (à partir de fbgraph ruby bibliothèque) :
Vous avez besoin d'écrire un peu de code PHP. Lorsque le premier utilisateur cliquez sur l'onglet que vous pouvez enregistrer est-il comme la page ou pas. Ci-dessous l'exemple de code
Voici un exemple de travail, qui est un fork de cette réponse:
J'ai utilisé le FB.méthode de l'api (SDK JavaScript), au lieu de FB.Les données.la requête, qui est obsolète.
Ou vous pouvez utiliser l'API Graphique comme avec cet exemple:
Il y a quelques modifications nécessaires au code JavaScript pour gérer le rendu en fonction de l'utilisateur aimer ou ne pas aimer la page mandaté par Facebook déplacement à Auth2.0 autorisation.
Le changement est assez simple:-
séances doit être remplacé par authResponse et uid par userID
En outre, compte tenu de l'exigence du code d'éthique et de certains problèmes rencontrés par les personnes(y compris moi) en général avec FB.de connexion, l'utilisation de FB.getLoginStatus est une meilleure alternative. Il enregistre une requête pour FB au cas où l'utilisateur est connecté et a authentifié votre application.
Voir la Réponse et les Sessions de l'Objet de la section pour plus d'informations sur la façon dont cela pourrait enregistrer la requête pour FB server. http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/
Problèmes avec FB.login et son correctifs à l'aide de FB.getLoginStatus.
http://forum.developers.facebook.net/viewtopic.php?id=70634
Voici le code affiché ci-dessus avec les modifications qui ont travaillé pour moi.
Avec Javascript SDK, vous pouvez modifier le code comme ci-dessous, cela devrait être ajouté après FB.init appel.
Il y a un article ici qui décrit votre problème
http://www.hyperarts.com/blog/facebook-fan-pages-content-for-fans-only-static-fbml/