Twitter API "İmleç" Anlamak

4 Cevap php

I don't really get how to use the Curesor parameter in Twitter's API, for an exmaple - here. Am I supposed to make a new API call for each 100 followers?

Birisi daha 100 var varsayarak takipçileri tam bir listesini almak için bir PHP örneği verebilir eğer ben isterim ...

Şimdiden teşekkürler!

4 Cevap

Sen takipçilerinin sonraki "öbek" almak için geri API imleç değerini geçmesi gerekiyor. Sonra o parça İmleç parametre alır ve bir sonraki parça almak için geri pas. Bu bir "sonraki sayfa olsun" mekanizması gibi.

Twitter API imleçler nasıl çalıştığını göstermek de resmi belgeler:

https://dev.twitter.com/docs/misc/cursoring

Çıkış 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());
      }

    }

  }

Bu soru sorulmuştur yana, Twitter API birçok yönden değişti.

İmleç çok sonuçlarla API yanıtları paginate için kullanılır. Örneğin, takipçileri elde etmek için tek bir API çağrısı 5000 kimlikleri maksimum alır.

Eğer bir kullanıcının tüm takipçileri elde etmek istiyorsanız, yeni bir API çağrısı yapmak zorunda kalacak, ama bu sefer ilk tepki olarak "next_cursor" sayısını belirtmek zorunda.

Fayda varsa, aşağıdaki python kod belirli bir kullanıcı takipçileri alır.

Bir sabiti ile belirtilen sayfalık maksimum alır.

(: Anonim çağrılar fazla 150 API çağrıları / saat yapmayın yani) yasaklı olmamak dikkatli olun

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)))