Comment utiliser les applications Twitter

Introduction
Dans cette ressource, nous allons voir comment programmer des publications de tweets.Pour cela nous allons créer une application Twitter, voir comment fonctionnent les jetons que Twitter nous envoie comment se connecter à l'application et comment poster des messages.
Contexte
Nous allons créer un compte Twitter classique, wikihasard, et une application, wikihasard-app.Pour créer une application Twitter, il faut se rendre sur la page 'apps' de dev.twitter.com.
Vous devez remplir des champs comme le nom, la description, le site internet à qui va appartenir l'application et l'url de retour (Callback), que nous verrons plus tard.
Une fois l'application validée, Twitter va vous fournir des données :
- Consumer key
- Consumer secret
Vous en aurez besoin pour vous connecter à l'application.
La librairie TwitterOAuth
Cette librairie va vous permettre d’interagir avec le réseau social.Vous allez créer une page, où après avoir inclus le fichier twitteroauth.php vous allez demander à vous connecter à votre application.
Vous allez avoir besoin des deux clés données par Twitter, la Consumer Key et la Consumer secret.
En échange de ces deux paramètres, Twitter va vous renvoyer 2 nouvelles clés. Elles seront temporaires, stocker les dans une session pour les conserver par exemple. Vous serez également redirigé vers la page de l'application Twitter.
<?php session_start(); /* * infos fournies par twiiter */ define('API_CONSUMER_KEY', 'api_consumer_key'); define('API_CONSUMER_SECRET', 'api_consumer_secret'); // Librairie TwitterOAuth include('twitteroauth.php') $connection = new TwitterOAuth(API_CONSUMER_KEY, API_CONSUMER_SECRET); $request_token = $connection->getRequestToken(); // Retour des tokens temporaires /* * Sauvegarde des tokens temporaires */ $_SESSION['oauth_token'] = $request_token['oauth_token']; $_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret']; // récupération de l'url de l'application Twitter $url = $connection->getAuthorizeURL($request_token['oauth_token'], false); header('Location :'.$url); ?>
Le fichier Callback
Si tout se passe bien, vous êtes sur la page de l'application twitter.Lorsque vous cliquerez sur "Autoriser l'accès" vous allez être redirigé vers votre fichier callback.
Indiquez-donc l'url de celui-ci dans votre page d'application.
Cette page va faire une dernière vérification en prenant vos données "consumer" et les tokens temporaires quand vous allez vouloir vous connecter avec votre compte Twitter.
Cette vérification va vous renvoyer les deux tokens définitifs.
<?php $connection = new TwitterOAuth(API_CONSUMER_KEY, API_CONSUMER_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); $access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']); $_SESSION['definitif_oauth_token'] = $access_token['oauth_token']; $_SESSION['definitif_oauth_token_secret'] = $access_token['oauth_token_secret']; $_SESSION['screen_name'] = $access_token['screen_name']; ?>
Postons des tweets !
Vous pouvez donc, via les 2 sessions, récupérer vos tokens définitifs.Pour ma part, je vais les stocker dans 2 constantes : API_def_oauth_token et API_def_oauth_token_secret.
Pour mon application Wikihasard, je récupère dans une base de données des articles issus de Wikipedia. Une fois par jour (à l'aide d'un CRON), au hasard, un tweet est publié.
Il me suffit donc de poster un message avec la fonction post() de la librairie TwitterOAuth.
<?php /* * Fichier CRON * * wiki contient l'article tiré au hasard */ $connection = new TwitterOAuth(API_CONSUMER_KEY, API_CONSUMER_SECRET, API_def_oauth_token, API_def_oauth_token_secret); $result_tweet = $connection->post('statuses/update', array('status' => stripslashes($wiki['lib_article'] . ' ' . $wiki['url_article'] . ' #wikihasard'))); ?>
Conclusion
Ces bases sont très pratiques si vous souhaitez découvrir l'environnement Twitter.Dans mon exemple j'ai créé un compte Twitter, qui à l'aide d'une application, tweet tous les jours vers midi un article que j'ai inséré via un bookmarklet dans une base de données.