Voici une librairie PHP que j’ai écrite durant mon dernier projet. Elle permet d’écrire des messages automatiquement sur Facebook et/ou Twitter.
Le principe est simple,Lors de la publication d’une news sur votre site, vous envoyez un message automatiquement sur Facebook et Twitter pour le signaler à votre communauté. Tout en minimisant la taille des messages grâce au service fournis par Bit.ly
Voici la page du projet : http://code.google.com/p/socialnetwork-php
Il existe un ReadMe dans le wiki du projet, mais il est en anglais donc voici des explications en français et plus complètes.
Récupérer les TOKEN du compte twitter.
L’utilisation de l’API de twitter oblige un utilisateur à se connecter en OAuth avant de publier un tweet. Cependant, notre script ne devra pas s’arrêter à cela, c’est pourquoi nous devons stocker les différentes token.
Premièrement, créer une application « Browser » sur Twitter : https://dev.twitter.com/apps/new
Aprés la création, récupérer la « Consumer Key » et la « Consumer Secret » dans la partie « OAuth ».
Mettez les donc dans les variables constantes :
const TWITTER_CONSUMER_KEY = ""; const TWITTER_CONSUMER_SECRET = "";
Pour récupérer la TOKEN et la TOKEN_SECRET, il vous faut cliquer sur « My Accesss Token » situé dans la sidebar à droite de la page de résumé sur twitter.
Mettez les deux TOKEN dans les constantes:
const TWITTER_TOKEN = ""; const TWITTER_TOKEN_SECRET = "";
Voila votre compte twitter est activé, et fin prêt à publier des tweets.
Attention pensez à créer l’application avec le compte twitter sur lequel vous souhaitez tweeter.
Récupérer les API Key de l’application facebook.
Pour Facebook, Rien de compliquer non plus.
Commencez par créer une FanPage. Ici : http://www.facebook.com/pages/create.php
Ensuite, rejoignez le groupe « Facebook Developpers » afin d’accéder à l’API : http://www.facebook.com/developers/
Cliquer sur « Créer une aplication », vous arriverez sur une fenetre de ce type:
Valider et vous voici sur une page pour modifier toutes les informations de votre Applications. (vous le ferez plus tard
).
Cliquer sur « Enregistrer les modifications » .Et vous voila sur la page.
ici, vous allez récupérer:
Maintenant, nous allons gérer les permissions entre votre FanPage préalablement créée et votre Application. Afin qu’elle publie des messages sur le mur de votre FanPage.
Cliquez sur « Page du profil de l’application », puis sur « Ajouter à ma Page », dans le menu de gauche. Une popup va s’ouvrir et il vous suffira de cliquer sur « Ajouter à une Page » en face du nom de votre page. Attention à ne pas confondre votre Fan Page avec la page dédiée à votre application (celle-ci est automatiquement créée lors de la création de l’application).
Ensuite , il vous faut donner l’autorisation à votre application de poster sur votre page.
Remplacez l’ID_APPLICATION par celui récupérer auparavant.
http://www.facebook.com/connect/uiserver.php?app_id=ID_APPLICATION&next=http://www.facebook.com/&display=popup&locale=fr_FR&perms=publish_stream&enable_profile_selector=1&fbconnect=true&legacy_return=1&method=permissions.request
Sélectionnez UNIQUEMENT votre FanPage et cliquez sur « Autoriser ».

Voila la liaison est faite, il faut maintenant juste entrez les informations correspondantes dans les constantes de la classe.
const FB_ID_APPLICATION = ""; const FB_API_KEY = ""; const FB_API_SECRET = ""; const FB_FAN_PAGE_ID = "";
Récupérer les API Key de Bit.ly
Pour cela, il vous suffit juste d’aller sur votre compte Bit.ly et d’y récupérer votre API Key : http://bit.ly/a/account
Et de rentrer les informations dans les constantes:
>const BITLY_LOGIN = ""; const BITLY_API_KEY = "";
Voila la classe SocialNetwork est correctement configurer.
Pour Twitter:
SocialNetwork::postToTwitter($message);
où $message : Message à envoyer. Si un lien est présent, il sera automatiquement réduis avec le service de Bit.ly
Pour Facebook
SocialNetwork::postOnFacebookFanPage($message,$title,$caption,$picture,$description,$link,$action);
où
$action = array(
array('name' => 'Action name', 'link' => 'http://')
);
Voici un exemple rapide
Pour Bit.ly
SocialNetwork::shortenURL($url);
Voila, vous avez tout. J’espere que cette article vous aura aider.
J’essaie de faire une nouvelle version dès que j’ai le temps avec plusieurs services de réductions d’URL et peut-être d’autres réseaux sociaux.
Choix du service de raccourcisseur d’url
Pour choisir, le service qui vous permettra de raccourcir vos url, il vous suffit de mettre à true le nom du service. La fonction s’occupera du reste.
Google URL Shortener
Voici après demande de plusieurs personnes, j’ai enfin rajouté le support de l’url shortener de google.
Pour l’utiliser rien de plus compliquer Bit.ly, il vous faut d’abord aller sur
https://code.google.com/apis/console/
Là, vous créer un projet et vous activez le service URL Shortener
Ensuite, allez récupérer votre clef d’API dans le menu à droite, vous avez : « API Access ».
Et la récupérer votre API key:
Appel:
Si vous développez de nouvelles fonctionnalités, je suis pr^t à vous ouvrir le SVN afin que l’on agrémente cette classe de façon communautaire.
Tu as une erreur dans ta fonction ‘postOnFacebookFanPage’ du fichier ‘SocialNetwork.class.php’.
Dans les paramètres tu mets $action alors que plus loin tu fais appel à $actions (avec un « s » en plus ».
Je corrigerais çà dans la soirée
merci.
Je viens de tomber sur ta classe et j’avoue pas mal
il est vrai que permettre plusieurs services de réduction d’url voir mettre celui de google serai pas de refus:)
Merci encore pour ce codes
Bonjour tu pourrais m’expliquer enfaites, ton application c’est pour , en l’ajoutant a la page , elle obligera les fan a la publier sur le profil de leurs amis ?? ou j’ai pas compris tu peux m’expliquer
Merci beaucoup pour ce tuto détaillé et la class qui va bien
Par contre il y a toujours l’erreur signalée par Kevin dans le fichier SocialNetwork.class.php, qu’il faut donc corriger pour que tout fonctionne correctement.
Bonjour, Je viens d’utiliser tout ce joli bout de code mais j’ai un problème, quoi que je fasse j’ai le droit à ce message quand je tente de poster sur ma fanpage :
The user hasn’t authorized the application to perform this action
J’avou ne pas avori très clair le tuto pour les manips sur facebook. Si quelqu’un peux m’éclaireer sur ce que j’ai raté. Merci !
J’ai corrigé le bug de la méthode « postOnFacebookFanPage ». Vous retrouverez l’update dans le repository Google Code.
J’ai continué à triturer le code et Facebook me refuse toujours de posté même après avoir utilisé le lien pour donner les droits à mon applications. J’ai vu dans un autre tuto un système de login, et en effet après m’être loggué ça a fonctionné. Quelqu’un serait ce qu’il faut rajouté à ces classes pour que cela fonctionne ? Ou ai-je mal fait quelquechose ?
Normalement, tout fonctionne, j’ai retesté… Aprés, tu peux essayer en rajoutant le scope : offline_access à ta demande de permission.
http://www.facebook.com/connect/uiserver.php?app_id=ID_APPLICATION&next=http://www.facebook.com/&display=popup&locale=fr_FR&perms=publish_stream,offline_access&enable_profile_selector=1&fbconnect=true&legacy_return=1&method=permissions.requestEst-tu sur d’utiliser une Fan Page et non un profil classique ? car pour l’instant, la classe ne fonctionne qu’avec les fanpages, je pense rajouter prochainement la publication sur un profil utilisateur.
Bonsoir,
Tout d’abord, merci pour ce travail de qualité !
De mon côté, après avoir bidouillé pour tenter de respecter toutes les étapes de ce tuto, Facebook ne m’autorise pas à poster…
« The user hasn’t authorized the application to perform this action »
Il semblerait que je n’ai pas les mêmes options quand je copie-colle le lien pour autoriser l’application à poster. Je peux juste « Autoriser »… Ce que j’ai bien sûr accepté.
Y’a-t-il un délai pour que Facebook prenne en compte la création de l’application ?
Merci.
pH
Je pense que ca doit venir soit de l’url qui a du changer avec les nouvelles versions de facebook … j’essaierai de trouver çà. Si tu trouvez une solution n’hesites surtout pas à me l’envoyer pour que je l’ajoute à l’article.