2009-11-23 19 views
2

Je ne comprends pas vraiment comment utiliser le paramètre Curesor dans l'API de Twitter, pour un exemple - here. Suis-je censé faire un nouvel appel API pour chaque 100 abonnés?Comprendre le paramètre "Curseur" de l'API Twitter

J'aimerais si quelqu'un pourrait donner un exemple de PHP pour obtenir une liste complète des disciples en supposant que j'ai plus de 100 ...

Merci à l'avance!

Répondre

2

Vous devez renvoyer la valeur du curseur à l'API pour obtenir le prochain "bloc" de suiveurs. Ensuite, vous prenez le paramètre curseur de ce morceau et le renvoyez pour obtenir le morceau suivant. C'est comme un mécanisme de «passer à la page suivante».

0

Découvrez http://code.google.com/p/twitter-boot/source/browse/trunk/twitter-bot.php

foreach ($this->twitter->getFollowers(,0) as $follower)//the 0 is the page 
    { 
     if ($this->twitter->existsFriendship($this->user, $follower['screen_name'])) //If You Follow this user 
      continue; //no need to follow now; 
     try 
     { 
     $this->twitter->createFriendship($follower['screen_name'], true); // If you dont Follow Followit now 
     $this->logger->debug('Following new follower: '.$follower['screen_name']); 
     } 
     catch (Exception $e) 
     { 
     $this->logger->debug("Skipping:".$follower['screen_name']." ".$e->getMessage()); 
     } 

    } 

    } 
+0

ce code est de créer des amitiés pas récupérer le suiveur listes –

+0

lire le code $ this-> Twitter-> getFollowers() retourne un tableau, ce qui précède est un exemple ce que vous pouvez faire avec ce tableau – streetparade

+0

vous besoin de la définition dans ce fichier: http://code.google.com/p/twitter-boot/source/browse/trunk/inc/twitter.php –

0

Depuis cette question a été posée, API Twitter a changé à bien des égards. Curseur est utilisé pour paginer les réponses API avec de nombreux résultats. Par exemple, un seul appel d'API pour obtenir des abonnés récupérera un maximum de 5000 identifiants.

Si vous souhaitez obtenir tous les abonnés d'un utilisateur, vous devrez effectuer un nouvel appel d'API, mais cette fois vous devez indiquer le numéro "next_cursor" qui figurait dans votre première réponse. Si c'est utile, le code python suivant récupérera les suiveurs d'un utilisateur donné.

Il récupérera un maximum de pages indiquées par une constante.

Veillez à ne pas être interdit (ex: ne pas faire plus de 150 appels api/heure dans les appels anonymes)

import requests 
import json 
import sys 


screen_name = sys.argv[1] 
max_pages = 5 
next_cursor = -1 

followers_ids = [] 

for i in range(0,max_pages): 
    url = 'https://api.twitter.com/1/followers/ids.json?screen_name=%s&cursor=%s' % (screen_name, next_cursor) 
    content = requests.get(url).content 
    data = json.loads(content) 
    next_cursor = data['next_cursor'] 

    followers_ids.extend(data['ids']) 

print "%s have %s followers!" % (screen_name, str(len(followers_ids))) 
1

Malgré vous avez demandé il y a quelque temps, j'espère que ce sera plus réponse précise.

  1. Twitter n'offre pas d'informations sur ce que next_cursor signifie. Seulement how cursor works.
  2. Ce n'est qu'un moyen facile pour Twitter de gérer la pagination.
  3. «La fonction est destinée à être utilisée de façon linéaire, un curseur fixé à la fois par l'utilisateur.» Source

«Il est potentiellement moins efficace pour vous, mais beaucoup plus efficace pour nous .» Twitter Staff

MAIS ... Quelqu'un demande avant dans un lien mort «sont Curseurs persistantes? semble que la réponse est "oui" »

Cela signifie que vous pouvez enregistrer votre dernier curseur avant 0 et continuer avec la prochaine fois.

Questions connexes