fmetro Il y a 1 mois Répondre
Coucou ! Dans mon cas aussi: filemtime
merci de l'astuce.
Dans ce tutoriel vidéo vous apprendrez comment utiliser Curl et SimpleXMLElement pour récupérer et afficher votre dernier Tweet sur votre site. En plus de cela, un système de "cache" permettra d'optimiser la rapidité de cet affichage en créant un fichier permettant de sauvegarder le fichier XML distant.
Après avoir appris sur Internet quoi de plus normal que de partager à son tour ? Passionné par le web depuis un peu plus de 5 ans maintenant j'aime partager mes compétences et mes découvertes avec les personnes qui ont cette même passion pour le web : Vous.
fmetro Il y a 1 mois Répondre
Coucou ! Dans mon cas aussi: filemtime
merci de l'astuce.
SRC25 Il y a 8 mois Répondre
A quel endroit peut on récupérer le fichier xml twitter ?
GamiChan Il y a 7 mois - Répondre
http://www.twitter.com/statuses/user_timeline/TonNo ùTwitter.xml?count=NombreDeFeeRssAAfficher
KaKuZa` Il y a 9 mois Répondre
J'ai fait comme sur la vidéo.
Mais j'ai une erreur:
Fatal error: Call to undefined function curl_init() in C:\wamp\www\site\index.php on line 2
[code]<?php
$twitter = curl_init();
curl_setopt($twitter,CURLOPT_URL,"http://twitter.com/statuses/user_timeline/297865780.rss?count=1 ");
curl_setopt($twitter,CURLOPT_TIMEOUT,2);
curl_setopt($twitter,CURLOPT_RETURNTRANSFER,true);
$contenu = curl_exec($twitter);
echo $contenu;
?>
[/code]
GamiChan Il y a 7 mois - Répondre
<?php
function parse($text)
{
$text = preg_replace('#http:// [a-z0-9._/-]+#i', '<a href="$0">$0</a>', $text);
$text = preg_replace('#@([a-z0-9_]+)#i', '@<a href="http://twitter.com/ $1">$1</a>', $text);
$text = preg_replace('# \#([a-z0-9_-]+)#i', ' #<a href="http://search.twitter.com/search?q=%23 $1">$1</a>', $text);
return $text;
}
$user = "TonNomTwitter"; /* Nom d'utilisateur sur Twitter */
$count = 8; /* Nombre de message à afficher */
$date_format = 'd M Y, H:i:s'; /* Format de la date à afficher */
$url = 'http://twitter.com/statuses/user_timeline/ '.$user.'.xml?count='.$count;
$oXML = simplexml_load_file( $url );
echo '<ul>';
foreach( $oXML->status as $oStatus )
{
$datetime = date_create($oStatus->created_at);
$date = date_format($datetime, $date_format)."\n";
echo '<li>'.parse(utf8_decode($oStatus->text));
echo ' (<a href="http://twitter.com/ '.$user.'/status/'.$oStatus->id.'">'.$date.'</a>)</li>';
}
echo '</ul>';
?>
loikkk Il y a 9 mois Répondre
Salut à tous,
J'ai fait différemment, je tente d'apporter ma contribution.
<?php
//Gestion nombre affichage du flux RSS
$i = 0;
$limite_affichage = 4; //Nombre de tweets à afficher
$mon_espace = "URL COMPTE TWITTER"; //URL de votre espace twitter
$flux_rss = 'URL'; //URL du flux RSS à définir
//Chargement du flux RSS
if($flux = simplexml_load_file($flux_rss))
{
$donnee = $flux->channel;
//Lecture des données
foreach($donnee->item as $valeur)
{
//Contrôle nombre affichage du flux RSS
if ($i < $limite_affichage) {
//Affichages des données
echo '<p>Tweets du '.date("d/m/Y, à G:i",strtotime($valeur->pubDate));
echo "<br/>$valeur->description<br/><a href='$valeur->link' target="_blank">En savoir plus</a></p>";
$i++;
}
}
echo "<a href=$mon_espace target="_blank">Découvrez mon espace twitter</a>";
}
else echo 'Pas de flux RSS disponible';
?>
Adrien Il y a 11 mois Répondre
Salut à tous,
Je rencontre un petit soucis actuellement,
J'ai mon script va toujours chercher le xml de twitter car je suis tjrs au dessus des tempo pour le cache.
J'ai fait un echo de la différence et j'ai environ 9600s soit 2h... comment faire ?
Adrien Il y a 11 mois
Bon dans mon cas ce n'est pas fileatime mais filemtime que je devais utiliser.
Allez savoir pourquoi
Adrien Il y a 11 mois - Répondre
Pour ceux que ça intéresse, j'ai fait une fonction
<pre>
function urlclick($url)
{
$url=preg_replace('`(((https?|ftp)://(w{3}\.)?)(?<!www)(\w+-?)*\.([a-z]{2,4}))`',
'<a href="$1" target="_blank">$1</a>',$url);
return $url;
}
function myTwiter($account, $nb_tweet, $timeout, $home_site, $cache_folder, $cache_filename, $cache_lifetime)
{
$resultat = '';
if(time()-filemtime($home_site.$cache_folder.'/'.$cache_filename) > $cache_lifetime)
{ // Si le cache est supérieur a la durée spécifée, on charge le xml de sur le site twitter
$url = "http://twitter.com/statuses/user_timeline/ $account.xml?count=$nb_tweet";
$twitter = curl_init();
curl_setopt($twitter,CURLOPT_URL,$url);
curl_setopt($twitter,CURLOPT_TIMEOUT,$timeout);
curl_setopt($twitter,CURLOPT_RETURNTRANSFER,true);
$content = curl_exec($twitter);
if($content == false) //Si le chargement du xml se passe mal, on charge le cache
$content = file_get_contents($home_site.$cache_folder.'/'.$cache_filename);
else // Sinon on enregistre le chargement dans le cache
file_put_contents($home_site.$cache_folder.'/'.$cache_filename,$content);
}
else
{
# Sinon on charge le cache...
$content = file_get_contents($home_site.$cache_folder.'/'.$cache_filename);
}
$xml = new SimpleXMLElement($content);
$resultat .= '<div id="twitter">';
foreach($xml->status as $mes_tweet)
{
$resultat .= '<div class="tweet">';
$resultat .= '<div class="avatar_twitter">';
$resultat .= '<img src='.$mes_tweet->user->profile_image_url.'>';
$resultat .= '</div>';
$resultat .= '<div class="tweet">';
$resultat .= '<p><a href="http://fr.twitter.com/ #!/'.$mes_tweet->user->screen_name.'"><span class="gras">'.$mes_tweet->user->name.'</span></a> : '.urlclick($mes_tweet->text).'</p>';
$resultat .= '</div>';
$resultat .= '</div>';
}
$resultat .= '</div>';
return $resultat;
}
</pre>
vallou Il y a 11 mois Répondre
Bonjour,
J'obtiens l'erreur suivante dans le cache.xml : <error>Rate limit exceeded. Clients may not make more than 150 requests per hour.</error>.
Quelqu'un a-t-il rencontré le problèmé et aurait éventuellement une solution?
Je vous remercie :-)
Doccc Il y a 1 an Répondre
Bonjour,
Merci pour le tutorial, super bien expliqué.
Je voulais savoir si il était possible de faire un retour a la ligne lors de l'affichage du tweet ?
Merci
miu2rennes Il y a 1 an Répondre
A priori, je suis le seul concerné mais comment ça se passe pour les Re-Tweets?
Ils ne s'affichent pas sur le fichier xml de twitter mais si je retweete, il est quand même comptabilisé en tant que tweet et donc n'affiche rien.
Cela pourrait-il venir de mon fichier cache.xml?
Je sais pas si j'ai été très clair...
Alwin Il y a 2 ans Répondre
Je n'ai pas regardé le tutoriel en entier ( juste quelques passages ) mais il me semble que tu as oublié de libérer la ressource cURL à la fin du script avec curl_close($twitter); .
Les ressources sont libérée à la fin du script, lorsque le chargement est terminé, mais c'est une bonne habitude à prendre que de libérer systématiquement des ressources qui ne sont plus utilisée.
steph Il y a 2 ans Répondre
Merci pour ce tuto.
Comment afficher des liens cliquables comme toi ?
Dans ce tuto les liens des tweet qui s'affichent ne sont pas cliquable !
Merci
Quent1du58 Il y a 2 ans
Pour cela, il faut utiliser les regexp.
Ico Il y a 10 mois - Répondre
Voici comment j'ai codé la chose :
$regex = '@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@';
$texte = preg_replace($regex, '<a href="$1">$1</a>', $texte);
echo $texte;
Hugo Il y a 2 ans Répondre
J'ai un petit problème avec cette ligne:
$xml= new SimpleXMLElement($contenu)
Ca m'affiche plein plein d'erreur...
Une solution ?
vincmac Il y a 2 ans Répondre
Oups le timer du cache ne marche pas en local chez moi, c'est comme si l'ordi considérai comme écriture le fait de lire le fichier cache.xml.
Je regarde ça et je posterai ici si je trouve une solution fiable ou juste une réponse. p.s : je suis sous mac os, la gestion des fichiers n'est peu être pas la même que windows, Je vais essayer de mettre mon test en ligne pour voir ce que cela donne.
vincmac Il y a 2 ans Répondre
Vraiment merci!
En plus tes explications sont vraiment très claires.
AndroWiiid Il y a 2 ans Répondre
Bonsoir,
D'abord merci pour ce tutoriel claire et précis qui m'a beaucoup aidé dans l'affichage de mes Tweets sur mon site. Cependant, j'ai testé d'afficher en plus de ça l'heure exacte à laquelle j'ai posté mon annonce et j'éprouve quelques soucis.
Je me doute que pour obtenir la date, je dois utiliser ceci pour l'obtenir : $xml->status->created_at
Mais j'aimerais pouvoir modifier son contenu. Savez-vous comment on s'y prend ?
Merci d'avance !
musicalitymaker Il y a 2 ans Répondre
Bonjour à vous tous...
J'ai essayer de faire afficher mon dernier "tweet" sur ma page web, mais le problème est que dans mon serveur local le module "curl" n'est pas activé alors, il ne afficher pas le document xml de mes "tweet". Pour vous aidez à mieux comprendre ma situation de mon problème je vous donne quelque information :
J'utilise "MAMP" pour le serveur local et je suis sur mac pour mon serveur local. J'aimerais savoir comment je puisse activé le module ou la valeur "Curl" dans mon serveur locale. Car par défaut, il est inactif. Voici la portsion de code php que j'ai écrit sur ma page php :
<?php
$twitter = curl_init();
curl_setopt($twitter,CURLOPT_URL,"http://twitter.com/statuses/user_timeline/mupassionate.xml?count=1 ");
curl_setopt($twitter,CURLOPT_TIMEOUT,2);
curl_setopt($twitter,CURLOPT_RETURNRTRANSFER,true);
$NewsContent = curl_exec($twitter);
echo $NewsContent;
?>
Merci de votre aide.
jj31 Il y a 2 ans Répondre
Cool. Cependant de mon coté, aussi bien en local qu'en ligne fileatime() renvoie toujours la même valeur, et j'ai vérifié le fichier.xml est bien reécrit à chaque fois ... donc le système de cache ne fonctionne pas pour moi ... snif
Dimix Il y a 2 ans Répondre
Super tuto,
Comme toujours !
Fedora Il y a 2 ans Répondre
Bonjour Grafikart, je voudrais savoir , pour tes tutoriels , tu utilise quel logiciel pour améliorer la qualité du son ( votre voix sur les tuto). est ce que t'enregistre le voix à coté et le vidéo à coté ou en même temps.
David Il y a 2 ans Répondre
Salut,
Super tuto comme d'habitude.
J'aimerai récupéré par exemple l'avatar et l'url de mon dernier statut, mais impossible de les insérer sur mon site
Tof06 Il y a 2 ans Répondre
Est-il possible de faire de même pour Facebook ? Peut-on avoir accès à ce type de fichier XML, qui donnerai nos derniers statuts..
Jutix Il y a 2 ans Répondre
Merci
ça va sûrement me servir !
Bonne continuation Grafikart =)
Ly3s Il y a 2 ans Répondre
C'est plus rapide de le faire en jQuery avec AJAX:
$.getJSON("http://twitter.com/statuses/user_timeline/vous.json?callback=? ", function(data) {
$("#tweet").html(data[0].text);
});
DoDo021 Il y a 2 ans Répondre
Salut !!!
Pourquoi ne pas avoir utiliser json pour récupérer les données ?
Si non très bon tuto comme d'habitude =)
likeo Il y a 2 ans Répondre
Bravo pour cette 100ème vidéo
Harry Il y a 2 ans
91e vidéo (:
En fait, c'est juste l'ID 100 (dans la BDD) mais il en a supprimé certains ^^
Grafikart Il y a 2 ans - Répondre
Effectivement ce n'est pas la 100ème
leknoppix Il y a 2 ans Répondre
Vraiment génial comme toujours.
dechuck Il y a 2 ans Répondre
Ça fait longtemps que j'attendais un tuto de la sorte!! Pour le moment sur mon site j'avais mis l'objet javascript que fourni twitter, mais je le trouve pas très élégant!! :P
LimeCitrus Il y a 2 ans Répondre
Merci pour ce tuto!
N_aya Il y a 2 ans Répondre
Yeah thx!
- Etape 1 : Ce tuto + voler un slip
- Etape 2 : ?
- Etape 3 : http://popurls.com/ + profit
windcom.fr Il y a 3 jours Répondre
Super tuto qui fonctionne parfaitement pour moi, mais j'adorerai pouvoir récuperer l'URL postée dans un tweet, sous forme de lien et non pas sous forme de texte ? directement depuis l'api twitter ou plutot avec une regex sur le contenu texte du tweet récupéré ?