7
votes

Twitter API: Obtenez des suiveurs +99

Utilisation de l'API Twitter (et OAuth) Si je devais appeler aux adeptes de l'utilisateur, je serais renvoyé à 99 résultats.

Y a-t-il une façon de rentrer 99, puis appelez à nouveau à la fois à partir de Sollower 100 puis bouclez à travers ce style d'appel jusqu'à ce que le nombre total d'adeptes a été renvoyé?

ou vient de retourner tous les adeptes?


0 commentaires

7 Réponses :


4
votes

Vous devez spécifier le paramètre de curseur comme décrit la documronnement API . Par exemple. Spécifiez le curseur = -1 pour demander la première page, puis utiliser une valeur NEXT_Cursor renvoyée dans la première réponse:

  http://twitter.com/statuses/followers/barackobama.xml?cursor=-1
  http://twitter.com/statuses/followers/barackobama.xml?cursor=1300794057949944903


1 commentaires

Vous obtenez "Non autorisé à utiliser ce noeud final" lorsque vous essayez ces URL .. Je pense qu'ils ont peut-être changé leur API?



1
votes

Assurez-vous que vous utilisez le bon appel. Abonnés / IDS vous donne 5000 à la fois (mais c'est juste une liste d'identifiants). Cet appel utilise également le curseur pour vous permettre de passer à travers les pages des utilisateurs. Vous avez un niveau de zéro lorsque vous les avez tous.


0 commentaires

0
votes

Twitter permet uniquement à un certain nombre de demandes d'API par heure et je pense minute. Vous ne pourrez peut-être pas récupérer plus de 99 demandes à la fois.


3 commentaires

Le total est de 150 par heure. Il pourrait donc obtenir 100 personnes 150 fois (ou 5000 personnes 150 fois, selon l'appel qu'il utilise). Ce nombre est destiné aux appels qui n'ont pas besoin d'autorisation. Les appels qui nécessitent une autorisation sont comptabilisés séparément. Vous pouvez demander whitelisting pour votre application, mais même cela ne suffit pas à frapper à l'API Willy-Nilly. Si vous vous attendez à un service à volume élevé, vous devez faire une certaine mise en cache.


Mais vous faites un bon point. Il existe de nombreux comptes avec beaucoup de plus de 15 000 adeptes. Vous utiliserez toute votre API frappe à la fois avec eux.


ils sont sur une base d'utilisateurs de OAuth - si User_1 frappe leur limite. Ils obtiennent des erreurs, mais User_2 ira toujours bien



3
votes
<?php
$trends_url = "http://api.twitter.com/1/statuses/followers/fawadghafoor.json";
$ch       = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $trends_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$curlout  = curl_exec($ch);
curl_close($ch);
$response = json_decode($curlout, true);

foreach($response as $friends){
      $thumb = $friends['profile_image_url'];
      $url   = $friends['screen_name'];
      $name  = $friends['name'];
?>                         
<a title="<?php echo $name;?>" href="http://www.twitter.com/<?php echo $url;?>"><img class="photo-img" src="<?php echo $thumb?>" border="0" alt="" width="40" /></a>
    <?php  }  ?>

0 commentaires

0
votes

Bien que je leur ai posé cela il y a tout à fait, je suis revenu pour construire quelque chose de tout à fait semblable récemment (+ de nouvelles compétences en programmation).

J'ai remarqué que Twitter API a une méthode pour obtenir tous d'un identifiant d'utilisateur (ou de suivi) de l'utilisateur de l'utilisateur dans une demande. J'ai trouvé le meilleur moyen était de Array_Chunk UP ID dans des lots de 100 (et ne prenez que les 30 premiers tableaux car je ne voudrais pas utiliser toutes les demandes d'API d'utilisateurs qui pourraient réellement tweeter !). Ensuite, il existe une méthode qui vous permet d'accéder à 100 utilisateurs userinfo (à partir de la vue de l'utilisateur actuellement authentifié), donc je viens de faire une boucle (dormir un peu entre -bures), puis vous avez 30 000 abonneurs Twitter!

Je recommanderais de faire cela asynchroniquement dans un système de file d'attente, comme si vous le faites à la volée lorsque les utilisateurs demandent une page sur le site, il pourrait être très lent et vous pouvez être sujette à un délai d'attente HTTP. Aussi les cache comme l'enfer!

Désolé, je n'ai posté aucun code, mais j'espère que ce processus de pensée aidera quelqu'un :)


0 commentaires

0
votes
$cursor = -1;
$account_from = 'twitter_account';
do
{
    $json = file_get_contents('http://api.twitter.com/1/statuses/followers/' . $account_from .'json?cursor=' . $cursor);
    $accounts = json_decode($json);
    foreach ($accounts->users as $account)
    {

            array(
                ':twitter_id' => $account->id_str,
                ':account' => $account->screen_name,
                ':description' => $account->description,
            );
    }
    $cursor = $accounts->next_cursor;

}
while ($cursor > 0);

1 commentaires

Pourriez-vous s'il vous plaît ajouter même le plus petit peu d'explication de votre réponse? Informations supplémentaires sur la façon dont lui l'incorporer à son code serait également bonne.



1
votes

Twitter API nous limite à faire appel à l'API pour les suiveurs / IDS de la méthode est de 15 demandes par 15 minutes. Si vous faites plus que cette API vous donnera un message d'erreur de la limite de taux atteinte.

Pour plus d'informations sur la limite de taux d'API Twitter Visitez - https://dev.twitter.com/docs/rate-liming/1.1 et https://dev.twitter.com/docs/rate-liming/ 1.1 / Limites


0 commentaires