Poster sur Twitter / Facebook / Google plus

Cet article vous servira à poster de façon automatisée sur les principaux réseaux sociaux : Facebook et Twitter.

Facebook

Commencer tout d'abord à créer une nouvelle application : https://developers.facebook.com/apps.

Créer un fichier PHP contenant juste : echo $_GET['code']; puis mettez le sur votre site.

Dans Sélectionnez comment votre application est intégrée à Facebook, sélectionner Site web avec une authentification Facebook et mettre l'adresse du script PHP que l'on a créé précédemment.

Rendez-vous à cette adresse (en remplaçant les deux paramètres):

1 https://www.facebook.com/dialog/oauth?scope=manage_pages,offline_access,publish_stream&client_id=MON_APPLICATION_ID&redirect_uri=URL_DU_SCRIPT

Cette étape permet de donner à votre application l'autorisation de poster en votre nom.

Vous allez être redirigé vers votre page avec le code d'autorisation.

Rendez-vous ensuite sur cette page pour récupérer votre ACCESS_TOKEN :

1 https://graph.facebook.com/oauth/access_token?client_id=MON_APPLICATION_ID&client_secret=MON_APPLICATION_SECRET&code=CODE_AUTORISATION&redirect_uri=URL_DU_SCRIPT

Cet ACCESS_TOKEN permet de posté en votre nom. Si vous souhaitez postez au nom de votre page, rendez-vous ici :

1 https://graph.facebook.com/me/accounts?access_token=ACCESS_TOKEN

Et choisissez l'ACCESS_TOKEN de la page.

Récupérer ensuite ces fichiers : https://github.com/facebook/facebook-php-sdk/tree/master/src.

Modifier maintenant votre fichier PHP par :

 1 require_once("./facebook-php-sdk/facebook.php");
 2 
 3 $facebook = new Facebook(array(
 4   'appId'  => 'MON_APPLICATION_ID',
 5   'secret' => 'MON_APPLICATION_SECRET',
 6   'cookie' => true
 7 ));
 8 
 9 $post = array(
10     'access_token' => "ACCESS_TOKEN",
11     'message' => "Mon message :) "
12 );
13 
14 try
15 {
16     $res = $facebook->api('/me/feed', 'POST', $post);
17     // print_r($res); // En cas d'erreur ou si vous souhaitez récupérer l'id du post par exemple
18 }
19 catch (Exception $e)
20 {
21     echo $e->getMessage();
22 }

Ce code va poster sur votre mur le texte Mon message :).

Nous avons ici juste envoyé du texte. Mais il est possible d'envoyer plus de choses (lien, image, ...).

Vous trouverez la liste ici : https://developers.facebook.com/docs/reference/api/post/

Exemple (texte + lien + image) :

1 $params = array(
2     'access_token' => "ACCESS_TOKEN",
3     'message' => "Le texte de mon message",
4     'link' => "http://www.dewep.net",
5     'picture' =>  "http://www.dewep.net/projets/dewep/themes/images/dewep.png"
6 );

Le code précédent poste sur votre mur. Mais vous avez les permissions pour poster sur les murs de vos amis et sur les pages.

Il vous faut remplacer /me/feed par id_profil_ou_id_page/feed en remplaçant id_profil_ou_id_page par l'id qui se trouve dans l'url de la page/l'amis concerné.

Exemple pour poster sur https://www.facebook.com/Dewep.net il faudra remplacer /me/feed par /Dewep.net/feed.

Si vous souhaitez faire plus de chose, je vous recommande d'aller voir la documentation officielle : https://developers.facebook.com/docs/reference/api/.

Il faudra néanmoins, en fonction de ce que vous souhaitez pouvoir faire en plus, demander plus d'autorisations (à l'étape de la récupération du CODE_AUTORISATION, il faut ajouter les permissions supplémentaires dans le paramètre scope) : http://developers.facebook.com/docs/authentication/permissions/.

Twitter

Créer une nouvelle application : https://dev.twitter.com/apps/new. Le champ Callback URL n'est pas nécessaire.

Dans l'onglet Settings, changer le type d'accès : Read and Write puis enregistrer.

Il faut regénérer les clés pour actualiser le type d'accès. Aller dans le menu Reset keys puis cliquer sur Reset.

Revenez à l'onglet Details puis créer vos tokens : Create my access token.

Récupérer à présent les fichiers OAuth.php et twitteroauth.php récupérables depuis : https://github.com/abraham/twitteroauth/tree/master/twitteroauth.

Créer un nouveau fichier PHP contenant :

 1 require_once('twitteroauth.php');
 2 
 3 /* Configuration de Twitter */
 4 $consumerKey = 'CONSUMER_KEY';
 5 $consumerSecret = 'CONSUMER_SECRET';
 6 $accessToken = 'ACCESS_TOKEN';
 7 $accessTokenSecret = 'ACCESS_TOKEN_SECRET';
 8 $message = "@Dewep_net Tweet de test #test"; // Message à tweeter : doit contenir moins de 140 caractères
 9 
10 $tweet = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
11 $tweet->post('statuses/update', array('status' => $message));

Grâce à l'onglet Details, remplacer le contenu des variables par vos clés.

Exécuter ce fichier depuis le nom de domaine précisé à la création de votre application et le tweet sera envoyé. Si le tweet n'est pas envoyé, faites un print_r du $tweet->post(...), vous devriez avoir l'erreur.

Vous avez bien entendu la possibilité de mentionner une personne, ou utiliser un hashtag dans votre message, en utilisant @ ou #.

Il est aussi possible de répondre à un tweet, ou d'indiquer sa localisation. Pour cela, il faut fournir plus de paramètre dans le post : https://dev.twitter.com/docs/api/1.1/post/statuses/update.

Pour ce qui concerne les liens présents dans votre tweet, ils sont automatiquement remplacés par un lien raccourcis qui fera toujours 20 caractères.

Et pour ceux qui souhaiteraient joindre une image au tweet : https://dev.twitter.com/docs/api/1.1/post/statuses/updatewithmedia.

Poster est surement le plus intéressant, mais sachez que vous pouvez exécuter plus d'actions que ça. Je vous renvoie sur la documentation officielle où vous trouvez tout ce que vous avez la possibilité de faire : https://dev.twitter.com/docs/api/1.1.

Google Plus

L'API actuel de Google Plus ne permet actuellement que de lire.

Il n'existe pas vraiment de solution fiable à l'heure actuelle pour poster en automatique sur Google Plus.

Si vous souhaitez rendre la publication d'un lien plus rapide :

1 https://plus.google.com/share?url=http://le-lien-de-larticle-a-partage.fr

PHP Twitter Facebook Google Plus

Article publié le 21 Mars 2013.

Commentaires