Publier un Feed Story dans une page Facebook grâce à Facebook Connect

Publier un Feed Story dans une page Facebook grâce à Facebook Connect

Je ne suis pas un expert de l’API de Facebook, loin de là même, mais dernièrement je me suis aperçu qu’une de mes pages rapidement concoctée dans le passé qui utilisait leur API en mode Javascript et FBML ne fonctionnait plus. Cette page permettait au visiteur de partager automatiquement les résultats d’un test qu’il venait de prendre avec ses amis sur leur mur Facebook grâce à Facebook Connect, du genre « Marcel a réussi à obtenir un pointage de 9 sur 10 dans le test XYZ, ce qui fait de lui un excellent joueur. Essayez vous aussi le test XYZ. » Le terme Facebook pour ce genre de message dans le Fil d’actualité (News feed, en anglais) ou le Mur (Wall) de l’utilisateur est Feed Story.

Considérant que ça faisait longtemps que je l’avais programmé, j’étais pas mal rouillé, alors quand j’ai appris que Facebook avait changé sa façon de faire complétement pour publier dans les Feed Stories des utilisateurs enregistrés, j’étais un peu découragé, car la documentation de son API n’a pas la réputation d’être la mieux organisée.

J’ai fini par en lire juste assez afin de corriger et mettre à jour ma page avec leurs nouvelles fonctions, j’en ai pas assez appris pour expliquer comment et pourquoi tout ça marche, mais je crois que je pourrais en aider quelques uns qui veulent simplement faire la même chose avec de simples instructions sans passer des heures à lire leur documentation, une tasse de café après l’autre.

La première chose à faire pour accéder aux fonctionnalités de Facebook Connect en mode Javascript et son language FBML (il existe aussi des méthodes en mode PHP, ce qui n’est pas le sujet de cet article) est de créer une application dans leur section Développeur. Cliquez sur le bouton Créer une application (« Set Up New Application » en anglais). Donnez lui le nom voulu, remplissez les champs de la page Général ainsi que la page section Connexion, qui contient les paramètres de Facebook Connect, où vous devez insérer l’URL de votre site. Une fois fait, prenez en note la Clé API publique.

Cette partie est en fait un résumé personnalisé de ce qu’on peut trouver dans leur page Facebook Connect Tutorial 1. Pour que votre site puisse communiquer avec Facebook, il vous faut ajouter au site un fichier html nommé xd_receiver.html qui contient le code suivant:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <body> <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/XdCommReceiver.js" type="text/javascript"></script> </body> </html>

Sauvegardez le dans un répertoire au nom de votre choix (/facebook/, /fbconnect/, etc) ou dans le même répertoire où se trouve la page qui fera appel à Facebook Connect, comme vous voulez, du moment que vous inscrivez la bonne localisation du fichier dans les étapes suivantes.

Ensuite il faut modifier la balise html de votre page concernée (celle en haut après la déclaration DOCTYPE) en ajoutant une adresse de Facebook xmlns:fb="http://www.facebook.com/2008/fbml" qui permettra d’interpréter leur terminologie XML:

Exemple:

<html xmlns="http://www.w3.org/1999/xhtml">

deviendra

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">

Ensuite, juste après la balise <body>, on ajoute leur fichier externe javascript FeatureLoader:

<script type="text/javascript" src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script>

On peut placer le code suivant ailleurs dans votre page je crois, mais j’aime bien initialiser la communication avec l’application en début de page juste après l’insertion du code javascript précédent. Il vous faudra inscrire la clé API de votre application (celle que vous avez pris note en début d’article) à la place de XXXXXXXXXXXXXXXX et bien indiquez la localisation du fichier xd_receiver.html dans votre site comme suit:

<script type="text/javascript">FB.init("XXXXXXXXXXXXXXXX","/facebook/xd_receiver.html");</script>

Si le fichier xd_receiver.html ne se situe pas dans le répertoire /facebook/, veuillez faire les changements nécessaires et indiquez le votre.

Voilà pour les instructions de base afin de préparer votre site, et votre page en particulier, à utiliser Facebook Connect.

Maintenant, si vous publiez un feed sur sa page Facebook (Implementing Feed Publishing from your Website or Application) afin qu’il le partage avec les autres, c’est généralement parce qu’il vient de participer à une application sur votre site, comme un quiz, un questionnaire, un test, un jeu, etc.

Commençons par ajouter un lien dans la page avec la fonction publier_fb() comme suit:

<a onclick="javascript: publier_fb(); return false;" href="#">Partagez ce résultat avec vos amis sur Facebook</a>

Dans cette fonction, il vous faudra en premier lieu récolter les valeurs du résultat dans des variables javascript avant de pouvoir les utiliser dans la fonction Facebook FB.Connect.streamPublish. Supposons que nous avons deux valeurs à intégrer, la 1ère étant le résultat en format numérique, comme 8, pour 8/10, et la 2ème étant une interprétation littérale du résultat numérique, comme « très bon! ». À vous de régler cette partie selon la nature de votre application.

Exemple:

1
2
3
4
5
6
7
8
9
<script type="text/javascript">
 
function publier_fb() {
 
	var test_resultat = "8";
	var test_resultat_definition = "très bon!";
 
}
</script>

Ensuite nous avons la partie propre à Facebook avec la fonction FB.Connect.streamPublish.

La fonction FB.Connect.streamPublish peut gérer plusieurs types d’info à publier, mêmes des images, mais je vais me restreindre dans ce tutoriel à l’essentiel, à vous d’explorer leurs pages de documentation si vous avez des besoins plus avancés. Revisitons notre fonction précédente et ajoutons les morceaux manquants. Le premier est la variable user_message, qui est le texte où l’utilisateur inscrit normalement un commentaire personnel. Vous devriez le laisser vide. Le 2ème est la variable attachment qui contient la majorité de l’information que nous voulons partager, et la 3ème, action_links est un appel à l’action avec un lien vers votre application web pour encourager ses amis à l’essayer.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script type="text/javascript">
 
function publier_fb() {
 
	var test_resultat = "8";
	var test_resultat_definition = "très bon!";
 
	var user_message = ''; 
 
	var attachment = {
		'name': 'Test XYZ',
		'href': 'http://www.example.com/test-XYZ.php',
		'caption': '{*actor*} a obtenu un résultat de ' + test_resultat + '/10, ce qui est ' + test_resultat_definition,  
		'description': 'Ce test est un outil populaire pour déterminer vos connaissances à propos de XYZ'
	};
 
	var action_links = [{'text':'Évaluez vos connaissances à propos d XYZ', 'href':'http://www.example.com/test-XYZ.php'}]; 
 
	FB.Connect.streamPublish(user_message, attachment, action_links);
 
}
</script>

La variable attachment contient diverses parties: la partie name est le titre du feed story, soit le nom de votre application, si vous voulez, la partie href est le lien vers votre page, la partie caption contient le résultat en version succincte, comme le pointage, où le terme {*actor*} peut être employé pour faire référence au nom de l’utilisateur, et finalement, la partie description permets d’ajouter plus d’information sur votre application qui suivra la partie caption.

Après la variable attachment, on a la variable action_links, qui contient un court appel à l’action pour encourager les lecteurs, avec encore un lien vers votre application. Notez que Facebook filtre les points d’exclamations dans cette partie, pour éviter de faire trop promotionel.

Tout est maintenant en place pour appeler la fonction FB.Connect.streamPublish() avec nos variables user_message, attachment et action_links.

facebook connect

Et voilà, il ne reste plus qu’à essayer!

Partager cet article:

  • del.icio.us
  • Facebook
  • StumbleUpon
  • Twitter
  • LinkedIn

Catégories: Programmation web, Promotion | 4 commentaires »
Les tags de cet article: , ,

Note: Merci pour vos commentaires, j'apprécie ceux qui partagent leurs avis et leurs expériences de webmestre, ou s'il y a lieu, indiquent une erreur dans mes tutoriels, mais je ne peux évidemment pas faire de support technique pour votre site, alors veuillez éviter d'en faire la demande dans cette section.

4 commentaires pour “Publier un Feed Story dans une page Facebook grâce à Facebook Connect”

  1. Marcel dit: 21 juin 2010 at 8:37

    Merci tout ceci fonctionne très bien, mais y’a t-il un moyen d’obtenir la fenetre de publication en français?

    Mille merci

  2. Bibi dit: 20 août 2010 at 9:33

    ça fonctionne à la perfection! merci!!

  3. Ham’s dit: 2 septembre 2010 at 21:46

    Ce script est très pratique pour publier facilement un commentaire sur son mur facebook !

    Merci, ca marche aussi à merveille :)

  4. caCtus dit: 22 janvier 2011 at 15:00

    Je viens de passer des heures à fouiner dans la documentation de Facebook et à chercher sur Google (en Anglais pensant avoir plus de chances de trouver) de quoi me mettre le pied à l’étrier pour pouvoir intéragir avec Facebook, sans succès… jusqu’à tomber sur cette page.

    Alors un grand merci pour avoir rédigé ce petit tuto, il m’a été très utile! Je vais pouvoir fouiner pour trouver ce qu’il me faut exactement, mais cette fois-ci en sachant mieux comment ça fonctionne pour les bases, ce que je cherche, et ce dont j’ai besoin.

Laisser un commentaire