2010-06-22 4 views
1

Je voulais écrire une fonction pour saisir tous les tweets pour l'utilisateur spécifié, mais elle renvoie seulement 20 plus récents.Existe-t-il un moyen d'obtenir tous les tweets de Twitter pour un utilisateur spécifique?

je suis venu avec quelque chose comme ça:

function getTweets($user) { 

    $page = file_get_contents("http://twitter.com/{$user}"); 
    $from = strpos($page, "<ol id='timeline' class='statuses'>"); 
    $to = strpos($page, "</ol>"); 
    $length = $to - $from; 
    $page =substr($page, $from, $length); 
    echo $page; 
} 

getTweets('user_name'); 

est-il un moyen de contourner cela?

Répondre

8

Twitter a un API que vous devriez interroger pour récupérer des données telles que des tweets. C'est beaucoup plus efficace que d'explorer le HTML.

Le service API statuses/user_timeline renvoie une liste de tweets provenant de tout utilisateur non protégé. Voici un example de ce service, configuré pour récupérer les tweets pour l'utilisateur FRKT_ (c'est moi). Vous pouvez personnaliser les données renvoyées de plusieurs manières, par exemple en ajoutant la variable count à l'URL like so pour spécifier le nombre de tweets que vous souhaitez récupérer.

Vous devez utiliser un analyseur XML tel que SimpleXML plutôt que des fonctions de chaînes diverses telles que strpos comme vous l'avez démontré pour analyser les données renvoyées par l'API.

+0

Bon sang. J'ai raté le paramètre 'count'. Je pense que cela devrait faire l'affaire. Maintenant, je vais certainement utiliser l'API Twitter. – Eugene

0

Twitter Libraries dispose de bibliothèques pour la liste des php. Si vous pouvez saisir un seul utilisateur tous les tweets ou non, j'ai peur de ne pas savoir, mais les bibliothèques devraient être un bon point de départ.

0

Ils reviennent seulement un maximum de 3200 tweets par utilisateur en appelant GET statuses/user_timeline, pour plus d'informations regarder ici: https://dev.twitter.com/discussions/1157

+0

Cela signifie donc que l'argument 'count' ne définit pas seulement une petite limite, mais même que c'est max. est une limite à la demande normale? – Eugene

+0

'count' est utilisé pour indiquer combien de tweets vous voulez récupérer par page, alors vous utilisez' depuis_id' et/ou 'max_id' pour naviguer dans les résultats. Regardez leur directive de pagination: https://dev.twitter.com/docs/working-with-timelines – Abbas

Questions connexes