Poster un message sur Twitter via API
Bien que je n’apprécie pas forcément Twitter, il m’est arrivé d’en avoir besoin pour mes clients.
On va donc voir comment envoyer un tweet via une page php.
Depuis le 1er septembre 2010, même pour envoyer un simple tweet, il est nécessaire de s’enregistrer auprès de Twitter en déclarant une application.
Avant cette date, il était possible d’envoyer simplement un tweet avec cURL, qui utilisait une authentification basique.
Il faut maintenant utiliser OAuth, qui est beaucoup plus complexe mais pas d’inquiétude, on va simplifier tout ça.
1/ Connectez-vous sur Twitter, puis allez sur http://dev.twitter.com/
2/ Cliquez sur “Your Apps” puis “Register a new application”
3/ Remplissez les champs, n’oubliez pas de cocher “Read & Write” au lieu de “Read-only” dans “Default Access type”.
Les autres informations n’ont que peu d’importance, comme “callback url” qui ne nous servira pas, mettez simplement l’adresse de votre site web par exemple.
4/ Une fois l’application enregistrée, nous obtenons les clefs nécessaires par la suite : en cliquant sur les détails de votre application, vous verrez : Consumer key et Consumer secret.
5/ puis en cliquant sur My access token, vous obtiendrez Access Token (oauth_token) et Access Token Secret (oauth_token_secret)
6/ Gardez ces informations sous le coude, on va en avoir besoin.
Gérer l’authentification OAuth est assez complexe et il existe des bibliothèques toutes faites en php.
J’ai choisi tmhOAuth de Matt Harris.
Il y a de nombreux exemples pour utiliser cette bibliothèque, celui qui nous intéresse est celui qui permet d’envoyer un tweet (ici).
J’ai utilisé cet exemple pour créer cette fonction.
Quelques remarques :
- Renseignez les 4 champs consumer_key, consumer_secret, user_token et user_secret avec les informations obtenues ci-dessus.
- Si votre $message est déjà codé en UTF-8, remplacez utf8_encode($message) par $message
Code php :
<?php
/**
* Envoie un message sur twitter (stat
* Si le message, une fois encodé en UTF-8, fait plus de 140 caractères, alors il ne sera pas accepté par Twitter.
*
* @param $message Message à envoyer à Twitter
* @return TRUE ou FALSE
*/
function tweet($message) {
require 'tmhOAuth.php';
$tmhOAuth = new tmhOAuth(array(
'consumer_key' => '',
'consumer_secret' => '',
'user_token' => '',
'user_secret' => '',
));
$tmhOAuth->request('POST', $tmhOAuth->url('statuses/update'), array(
'status' => utf8_encode($message)
));
if ($tmhOAuth->response['code']
== 200) {
// En cours de dév, afficher les informations retournées :
// $tmhOAuth->pr(json_decode($tmhOAuth->response['response']
));
return TRUE;
} else {
// En cours de dév, afficher les informations retournées :
// $tmhOAuth->pr(htmlentities($tmhOAuth->response['response']
));
return FALSE;
}
}
?>
Bon tweet ![]()
| Imprimer l'article | Cette entrée a été posté par Tony le 22 février 2011 à 9 h 16 min, et placée dans API, Twitter. Vous pouvez suivre les réponses à cette entrée via RSS 2.0. Vous pouvez laisser une réponse, ou bien un trackback depuis votre site. |



about 1 year ago
Merci pour cette documentation très claire. Mes tweets sont enfin automatisés