Voici un nouveau tutorial mêlant à la fois twitter et PHP, donc deux fois plus intéressant !
L'objectif du tutorial est d'apprendre à manipuler l'API Twitter afin de créer notre propre service twitter ou tout simplement pour faire interagir nos applications web PHP avec le réseau social.
Vous devez avoir le module cURL activé sur votre serveur web, et disposer de PHP 5 pour pouvoir faire le tutorial qui suivra (Utilisation de classes etc).
Pour la première partie de ce tutorial, nous allons déjà voir un truc très basique qui vous donnera une idée de comment marche l'API Twitter.
Nous allons créer un formulaire pour HTML qui nous permettra d'envoyer directement nos messages sur Twitter.
L'essentiel du système, pour tweeter en PHP, repose dans le code suivant:
$result = shell_exec('curl http://twitter.com/statuses/update.xml -u login:pass -d status="message a envoyer"');
Dans une requête HTTP executée par cURL, nous appelons les serveurs de Twitter, et plus particulièrement le service update (celui qui permet d'envoyer un message).
curl http://twitter.com/statuses/update.xml
Dans cette URL, on passe en argument le login et mot de passe de l'utilisateur pour qu'il soit authentifié au service (Impossible sans désormais):
-u login:pass
Et bien sûr le message à tweeter:
-d status="message a envoyer"
Une fois la requête executée, Twitter va retourner un résultat:
A vous de voir quel format de retour choisir suivant vos préférences.
Voilà le retour en XML lorsque je valide mon message:
<status>
<created_at>Thu Mar 19 22:32:07 +0000 2009</created_at>
<id>1357070413</id>
<text>Marche bien mon ptit script PHP :P</text>
<source>web</source>
<truncated>false</truncated>
<in_reply_to_status_id></in_reply_to_status_id>
<in_reply_to_user_id></in_reply_to_user_id>
<favorited>false</favorited>
<in_reply_to_screen_name></in_reply_to_screen_name>
<user>
<id>25397594</id>
<name>Mr DJo</name>
<screen_name>DrDJo</screen_name>
<location></location>
<description></description>
<profile_image_url>http://static.twitter.com/images/default_profile_normal.png</profile_image_url>
<url></url>
<protected>false</protected>
<followers_count>1</followers_count>
</user>
</status>
Notre message à bien été envoyé !
Rien d'autre à faire ! Simple non ?
Voilà un aperçu de l'API Twitter. Pour interragir avec le service, il suffira de faire des requêtes HTTP sur les serveurs twitter et de récupérer le résultat au format XML ou JSON.
Voici le script que j'ai utilisé pour faire mes tests, vous pouvez à votre tour essayer le script et voir les différents retours JSON ou XML possibles.
<?php
if ( isset($_POST) ) {
$login = $_POST['login'];
$pass = $_POST['pass'];
$type =$_POST['type'];
$msg = str_replace('"','"',$_POST['msg']);
$result = shell_exec('curl http://twitter.com/statuses/update.'.$type.' -u '.$login.':'.$pass.' -d status="'.$msg.'"');
echo "<pre>";
if ($type == 'json')
echo var_dump(json_decode($result));
else
echo var_dump(htmlentities($result));
echo "</pre><br /><hr />";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Twittos</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
</head>
<body>
<form action='?' method='POST'>
<table style='width: 500px; margin: 0 auto'>
<tr>
<td>Login Twitter:</td>
<td><input type='text' name='login' /></td>
</tr>
<tr>
<td>Pass Twitter:</td>
<td><input type='password' name='pass' /></td>
</tr>
<tr>
<td>Format du message de retour:</td>
<td>
<select name='type'>
<option value='xml'>XML</option>
<option value='json'>JSON</option>
</select>
</td>
</tr>
<tr>
<td>Message Twitter:</td>
<td><input type='text' name='msg' maxlength='140' width='40' value='Vive la @lafermeduweb !' /></td>
</tr>
<tr>
<td align='center'><input type='submit' value='Poster !' /></td>
</tr>
</table>
</form>
</body>
</html>
Mettez ce code dans un fichier PHP et uploadez le sur votre serveur puis testez ! (Cliquez sur "view plain" pour récupérer le code propre)
La semaine prochaine, nous commencerons à créer notre propre client web twitter.
Si vous avez des idées de service, ou de client originaux, n"hésitez pas à poster un commentaire, le nom du service sera twittos.
Prix com' intelligentBaraguiné par Xeon le 20/03/09 à 12h20Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:
Compte la Ferme du WebIdentifiez-vousInscrivez-vous |
Compte Facebook |
Compte Twitter
|