Cet article vous servira à poster de façon automatisée sur les principaux réseaux sociaux : Facebook et Twitter.
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/.
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.
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