banniere
Ecrit par leknoppix le 8-01-2010 à 18:33:52
Interraction entre site internet et twitter

Aujourd'hui, je vais vous apprendre à récupérer vos derniers posts rédigé sur twitter. Vous avez surement remarqué que, sur certains sites ou blog, vous pouvez lire les derniers posts de twitter. Je vais vous présenter une des méthodes proposées dans la section API.

En premier, il faut créer 2 variables contenant vos informations personnelles.

<?php
$twitterUser = "login";
$twitterPassword = "pass";
?>

Cela est nécessaire dans le but de récupérer vos propres Tweets. Ensuite nous allons utiliser un script développé par twitter. Ce script permet en fait, de récupérer vos tweets.

<?php
$rawTweets = file_get_contents("http://$twitterUser:$twitterPassword@twitter.com/statuses/user_timeline.json");
?>

Cependant, il se peut que vous ayez des problèmes dans le cas où vous actualisez votre page contenant ce script chaque X seconde. Cette technique est limitée à 200 actualisations en 1 heure et par IP. Les chiffres sont à vérifier mais retenez qu'il y a une limitation. La variable $rawTweets est de type json. Nous allons devoir convertir la chaîne encodée JSON en une variable de type PHP. Pour cela nous allons utiliser la fonction json_encode().

<?php
$myTweets = json_decode($rawTweets);
?>

Dans le script complet que je vous donnerais plus bas, j'utilise à ce niveau un if(), dans le but de vérifier qu'il y a bien un contenu. Vous pouvez tout à fait avoir un compte twitter mais ne pas poster! Afin pour afficher les tweets, un foreach suffit.

<?php
foreach ($myTweets as $tweet) {
echo htmlspecialchars($tweet->text));
}
?>

Ce code ci dessous permet d'afficher seulement les derniers tweets. Cependant la variable $myTweets contient beaucoup d'autres informations telles que des éléments du profil .... Pour voir l'ensemble des informations de cette variable, faites le code ci dessous:

<?php
echo "<pre>";
print_r($myTweets);
echo "</pre>";
?>

Voila, vous savez maintenant comment récupérer et afficher vos derniers tweets. Voici le code complet:

<?php
$twitterUser = "login";
$twitterPassword = "pass";
if ($rawTweets = file_get_contents("http://$twitterUser:$twitterPassword@twitter.com/statuses/user_timeline.json")) {
    if ($myTweets = json_decode($rawTweets)) {
        echo '<ul>';
        foreach ($myTweets as $tweet) {
            echo "<li>".twitter(htmlspecialchars($tweet->text))."</li>";
        	}
 
        }
        echo '</ul>';
    }
    else
    {
        echo "Aucun post";
    }
}
else {
    die("Impossible de charger les données depuis Twitter");
}
?>

Petit cadeau en plus. Sur le site de twitter, vous pouvez cliquer sur les hashtags tels que # ou @, voici une petite fonction qui permet de rendre vos hashtags cliquables.

<?php
function twitter($text)
{
$search = array('|(http://[^ ]+)|', '/(^|[^a-z0-9_])@([a-z0-9_]+)/i','/(^|[^a-z0-9_])#([a-z0-9_]+)/i');
$replace = array('<a href="$1" class="lienvrai">$1</a>', '$1@<a href="http://twitter.com/$2">$2</a>','$1<a href="http://twitter.com/#search?q=%23$2">#$2</a>');
$text = preg_replace($search, $replace, $text);
return($text);
}
?>

Voila, j'espère que ce petit code et ce tutoriel vous aura permis de comprendre comment faire pour récupérer vos tweets. N'hésitez pas à laisser un petit commentaire si vous avez apprécié ou que vous avez un problème.

EDIT: Suite à un commentaire de Pyraah, je me suis rendu compte que cette méthode n'était plus fonctionnelle, je vous envoie donc vers ce nouveau tutoriel

 

Publier sur mon compte twitterPublier sur mon viadeoPublier sur mon deliciousPublier sur mon compte twitter

Ajoute ton commentaire

Pseudo : *
E-Mail : *
MSN :
Site internet :
Blog :
Note : *
Commentaire : *
Ne pas compléter :

Le 18-05-2011 à 22:42:10 par Pyraah

avatarMerci à toi, je suis impatient de voir ça (je cherche en ce moment à inclure des tweets dans un site en développement).

Note :  notenotenotenotenote
Le 18-05-2011 à 13:35:28 par leknoppix

avatar@Pyraah: A premier coup d'oeil, il y a une des accolades non fermés. Ensuite, en re-testant mon code, la méthode json ne fonctionne plus question sécurité. Je fais refaire un tutoriel sur la récupération des postes twitters prochainement.

Note :  notenotenotenotenote
Le 18-05-2011 à 12:36:41 par Pyraah

avatarSalut, J'ai voulu tester le script complet, voici l'erreur que ça m'affiche : Parse error: syntax error, unexpected '}' in test.php on line 32. Saurais-tu d'où ça vient ? Merci. :)

Note :  notenotenote
1 - 2

© 2007-2017