2010-12-27 2 views
2

J'ai essayé de trouver comment ajouter une sorte de bouton sur une page de fan facebook. Je sais qu'il y a des façons de le faire. Cette page a par exemple mis en place un type de bouton similaire: http://www.facebook.com/JimBeam?v=app_100742133310820Incorporation d'un bouton facebook sur un fanpage facebook

Je sais que ces deux pages utilisent des applications et non la page FBML statique que vous utilisez habituellement. J'ai donc créé une application où elle fonctionne à merveille.

Dans cette application, le bouton "J'aime" fonctionne. Cependant, quand j'essaye de l'ajouter à un onglet sur une page facebook, j'obtiens une erreur disant: "Erreur HTML lors du rendu du tag" iframe ": iframes interdit par la saveur TabFBM" Donc, apparemment, les iframes ne sont pas autorisés à rendre. Mais évidemment, il y a des façons de contourner cela, avez-vous la moindre idée de la façon dont ils l'ont fait sur les autres pages?

J'apprécierais vraiment une réponse, et je suis particulièrement curieux si quelqu'un pourrait comprendre comment ils ont restylé le bouton comme sur la page de Jim Beam.

+0

Je ne pouvais ajouter qu'un lien alors voici deux autres liens. Ceci est encore une autre page qui a mis en place des goûts sur un onglet: http://www.facebook.com/FanpageHelpCenter?v=app_23744633048 et c'est l'application que j'ai créé: http://apps.facebook.com/pioneerofyear /? fb_page_id = 475652665494 – Jonathan

Répondre

2

L'onglet de la page Facebook est FBML. Et vous ne pouvez pas ajouter directement le bouton "like" (fb: like ou quoique ce soit d'autre) sur cette page. Mais il y a une "astuce" pour faire ceci, et la page que vous donnez implémente ce qui suit:

La seule manière d'obtenir le bouton "like" est de le charger dans un iframe. Mais les iframes sont également interdites dans le FBML de la page. Donc l'astuce consiste à charger une page html avec AJAX (fbjs appels) qui contient un iframe avec le bouton fb: like. Comme Facebook interdit l'autofiring javascript, vous devez cliquer sur un objet similaire ou sur une image avant de faire l'appel ajax pour charger l'iframe de votre html. C'est surtout une douleur dans le cul.

Donc, voici le code de preuve de concept.

Premier fichier: index.html:

<script type="text/javascript"> 
<!-- function launch_code() { 
    var ajax = new Ajax(); 
    ajax.responseType = Ajax.FBML; 
    ajax.requireLogin = false; 

    ajax.ondone = function(data) { 
     document.getElementById('content').setInnerFBML(data); 
    } 

    document.getElementById('content').setTextValue('Loading, please wait.'); 

    ajax.post('http://example.com/greatpageapp/iframe.html'); 
    return false; } 

//--> </script> 

<div id='content'> 
    <input type='button' onclick='launch_code(); return false;' value='click on me' /> 
</div> 

Et le contenu de iframe.html:

<center> 
<table valign="top" border="0" cellpadding="0" cellspacing="0"> 
    <tr> 
    <td valign="top" width="520" height="1500"> 
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fgoogle.com%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe> 
    </td> 
    </tr> 
</center> 

Testé et travaille maintenant. J'espère que cela pourra aider.

+0

Merci de prendre le temps de répondre à la question, mais malheureusement, je ne peux pas le faire fonctionner. Le iframe.html fonctionne parfaitement mais chaque fois que j'essaie de cliquer sur le bouton, rien ne se passe. J'ai changé le code dans l'ajax.post ainsi que de mettre le bon code dans le iframe.html. Donc, je ne peux pas vraiment comprendre ce qui ne fonctionne pas ... – Jonathan

+0

Vérifiez la console javascript dans votre navigateur. Ajoutez des instructions console.log pour faciliter le débogage. Installez firebug si vous utilisez Firefox, cela peut aussi aider au débogage. Je viens de c/p le code de travail sans modifier une chose (juste des urls). – Patrick

Questions connexes