PHP : Afficher vos Tweets avec la nouvelle API 1.1

28 juillet 2013 rdorigny 0 commentaires

Depuis plusieurs jours, l'affichage des tweets ne fonctionnent plus. Bon au départ, je pensais à un bug chez Twitter, mais après plusieurs jours toujours rien! Humm, bizarre. Bref, cette longue perte de service, m’interrogea quelque peu.

Je me décide donc à regarder mais "Qu-est-ce qui se passe?"



Je reprends mon ancien code que vous trouverez ici Et donc je relance la requête http://api.twitter.com/1/statuses/user_timeline.json?screen_name=rdorigny&count=1.
Ce qui donne:
{"errors": [{"message": "The Twitter REST API v1 is no longer active. Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview.", "code": 68}]}

Ha, il faut migrer vers la nouvelle API. Bon je me dis que cela ne doit pas être trop difficile. Ben, pas vraiment, la nouvelle API et assez complexe. Notamment, elle demande désormais une authentification par le protocole oAuth déjà utilisé par Instagram. Heureusement, il n'est pas utile de réinventer la roue, certains on déjà coder des librairies très utiles.

Mais bon, procédons par étapes. Tout d'abord il faut aller sur le site dédié à l'API https://dev.twitter.com/apps. Connectez-vous avec votre compte Twiteer le cas échéant. Cliquez sur le bouton "Create a new application". Ensuite renseignez le formulaire pour votre site/blog. Twitter vous créé un accès à son API et génère des identifiants pour oAuth. Vous les trouverez via l’onglet détails de votre application.
Pour finir, cliquez sur le bouton en bas "Create my access token", ce qui a pour effet de créer un jeton d'accès à l'API. Voilà, à la fin de cette étape, vous disposez de quatre codes qui vont vous permettre d'accéder à l'API.

Il ne reste plus qu'à coder, l'accès à l'API en PHP. Pour cela, nous allons utiliser la bibliothèque créé par Abraham Williams disponible ici. Attention, cette librairie utilise les modules curl et openssl de PHP. Pensez donc à les activer sur vos serveurs en modifiants le fichiers php.ini ou comme moi en passant par le menu de wamp. Bref, je vous propose ci-dessous une fonction qui devrait vous aider à récupérer vos Tweets en passant par l'API en PHP:
//********************************************************************************************* function Affich_Tweets($login,$nb_tweets,$path) { //A renseigner!! $consumer_key='xxxxxxxxxxxxxxxxxxxxx'; $consumer_secret='xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; $oauth_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'; $oauth_token_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; require_once($path.'/twitteroauth/twitteroauth.php'); $connection = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret); $query = 'https://api.twitter.com/1.1/statuses/user_timeline.json?count='.$nb_tweets; $tweets = $connection->get($query); //Affichage des tweets print(" <div id='news2'> <h3 class='menu_widget_titre'>Tweets récents</h3> <ul class='widget'>"); if(!empty($tweets)){ foreach($tweets as $tweet){ $date = date_format(date_create($tweet->created_at),"d M Y"); print("<li>".utf8_decode($tweet->text). " <a href='https://twitter.com/".$login."'>".$date."</a></li>"); } } //Affichage du bouton twitter de suivi pour votre profil print(" </ul> </div> <div id='news2'> <BR> <a href='https://twitter.com/".$login."' class='twitter-follow-button' data-show-count='true' data-lang='fr'>Suivre @".$login."</a> <script> !function(d,s,id) { var js,fjs=d.getElementsByTagName(s)[0]; if(!d.getElementById(id)) { js=d.createElement(s); js.id=id;js.src='//platform.twitter.com/widgets.js'; fjs.parentNode.insertBefore(js,fjs); } } (document,'script','twitter-wjs'); </script> </div>"); }

Pour moi, cela marche nickel, j'espère que cela vous sera utile également!?





Pseudonyme (obligatoire) :
Adresse mail (obligatoire) :
Site web :




© 2024 www.doritique.fr par Robert DORIGNY