Bonjour,

J'ai intégré dans mes pages des feed Twitter de sites d'information mais je voudrais les mettre en cache pour ne les rafraîchir que toutes les heures par exemple (Twitter limite à 150 requetes par heure).

Pour afficher mon feed twitter j'utilise le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$feed_name="lemonde"; 
${$feed_name}="<ul id='twitter_update_list'></ul><script type='text/javascript' src='http://twitter.com/javascripts/blogger.js'></script><script type='text/javascript' src='http://twitter.com/statuses/user_timeline/".$feed_name.".json?callback=twitterCallback2&count=5'></script>";
 
echo ${$feed_name};
Ça fonctionne, avec un léger temps de latence lié à la récupération du feed chez Twitter.

Maintenant si je veux mettre en cache ce résultat pour réduire les requêtes auprès de Twitter, je pensais faire quelque chose comme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$feed=mysql_real_escape_string(${$feed_name}); 
mysql_query("INSERT INTO twittercache (last_update,feed_name,feed_content) VALUES('$time','$feed_name','$feed')");
Mais lorsque je regarde ce qui a été placé dans le champs feed_content, je trouve la requête ("<ul id='twitter_update_list'></ul><script type='text/javascript' src='http://twitter.com/javascripts/blogger.js'></script><script type='text/javascript' src='http://twitter.com/statuses/user_timeline/".$feed_name.".json?callback=twitterCallback2&count=5'></script>") et non pas son résultat (le contenu du feed lui-même).

Donc pour résumer : j'affiche bien le contenu du feed Twitter mais je n'arrive pas à le placer dans ma base de données.

je sens bien que je fais une confusion entre la requête adressée à Twitter et son résultat mais je n'arrive pas à la résoudre.

Merci à tous.

P.S. : difficile de savoir où placer ce topic sachant qu'on y parle de JS, PHP et MySql.

P.P.S : Je suppose que le fait que j'ai la requête et pas son résultat vient de ce que l'appel est fait par javascript (donc client) et que j'essaie de récupérer ce résultat avant que la requête ne s'exécute (au moment de la génération de la page PHP-> Serveur).

Ce qui signifie que le cache est inutile puisque c'est le client qui sollicite Twitter et non le serveur web : l'IP retenue par Twitter est celle du client. Pas de risque d'exploser la limite de 150 requêtes par heure. Si quelqu'un peut confirmer/infirmer cette réponse ?