2012-04-07 15 views
5

Muszę uruchomić zapytanie, które zwraca listę użytkowników wraz z danymi o tych użytkownikach. Przypuśćmy, że biorę pod uwagę jedną osobę i chcę wiedzieć, gdzie są wszyscy jego uczniowie. To zapytanie:Zapytania wsadowe w api aplikacji Twitter?

http://api.twitter.com/1/followers/ids.json?screen_name={screen_name} 

zwraca listę identyfikatorów użytkowników osób obserwujących. Następnie mogę podłączyć każdy identyfikator użytkownika do tego zapytania:

http://api.twitter.com/1/users/lookup.json?user_id={user_id} 

, aby uzyskać informacje o użytkowniku, w tym o lokalizacji. Ale to oznacza, że ​​jeśli dana osoba ma 1000 wyznawców, musiałbym nazwać drugie zapytanie 1000 razy. Byłoby lepiej zrobić "join" (jak to by się nazywało w SQL), gdzie moglibyśmy poprosić o obserwujących ORAZ ich lokalizacje i zrobić to w jednym zapytaniu, ale nie widzę jak to zrobić.

Czy to możliwe? Ponadto, gdy pytasz o wyszukiwanie użytkowników, czy możliwe jest określenie, że chcesz tylko jedno pole, a nie cały rekord użytkownika (rodzaj zapytania, np. Pytanie o numer select single_field zamiast select * w SQL)?

Odpowiedz

7

Można wyliczyć wiele pytań user_id s w zapytaniu. Przykład:
http://api.twitter.com/1/users/lookup.xml?user_id=351927492,8602462,132533067,16984020,131217651,125764179

Ale ograniczona do 100 wartości (nazwiska, IDS) na zapytania, tak aby użytkownik z 1000 zwolenników trzeba zrobić 10 zapytań.

Aktualizacja Dla wersji 1.1 API poprawny URL byłoby http://api.twitter.com/1.1/users/lookup.json?user_id=351927492,8602462,132533067,16984020,131217651,125764179

+0

Dzięki. To nie jest łączenie, ale zmniejsza liczbę zapytań od 1001 do 11, więc myślę, że to wystarczy. Czy wiesz coś na temat drugiego pytania, ograniczając wyniki wyszukiwania użytkowników tylko do pól zainteresowań? –

+0

@JoshuaFrank Jak wiem, taka możliwość nie jest wbudowana w API Twittera, ale ponieważ manipulacje JSON-ami są dość łatwe w większości języków, nie stanowiłoby to problemu (chyba, że ​​wiesz o ilości pobranych danych). –

+0

Nie rozumiem, co masz na myśli. W rezultacie otrzymuje się JSON, ale jeśli wysyłają znacznie więcej danych niż potrzeba, to marnuje ono przepustowość. Zgoda, uzyskanie potrzebnych danych z wyniku nie będzie trudne, ale lepiej nie prosić o więcej, niż potrzebujesz. –