2010-11-04 9 views
5

Po prostu zaczynam zadzierać z bardzo, bardzo podstawowym zaproszeniem do interfejsu API Twittera (http://api.twitter.com/ 1/status/user_timeline.json) do przeciągnij moje tweety na moją stronę poprzez cURL. Jednak za pomocą strony, która nikogo jeszcze nie zna (co eliminuje możliwość niezamierzonego ruchu ), otrzymuję przekroczenie limitu stawki przed . Miałem okazję go przetestować. Mówi, że resetuje się o 5 po godzinie, więc sprawdzam ponownie i przez minutę działa, ale potem wróciłem , aby poinformować mnie, że mój limit stawki został przekroczony. Kilka pytań dla każdego, kto wie o Twitter API i/lub cURL:Wywołanie cURL do spotkania API Twittera "Limit stawki" bez wysyłania więcej niż 5 zgłoszeń

Po pierwsze, czy limit szybkości zastosowany do mojego serwera (zamiast użytkownika)? Zakładam, że tak, ale może to być oczywiście trudne. Nawet jedno wywołanie API na użytkownika może, w witrynie o marginalnym ruchu, z łatwością przekroczyć limit stawki w ciągu godziny. Czy istnieje sposób powiązania połączenia z użytkownikiem, a nie z serwerem? Wygląda na to, że nie, ale nie jestem całkiem pewien, jak działa cały API , a cURL wydaje się być zalecany w wielu miejscach . Jestem świadomy, że jeśli użyję JSON i AJAX dane w I mogę zrobić , że żądanie od użytkownika, ale tylko ze względu na argument, co o cURL?

Po drugie, jakikolwiek pomysł, w jaki sposób mogę przekroczyć mój limit stawek nawet bez odświeżania strony ? Płacę za hosting w innej lokalizacji, więc mogę dzielić przestrzeń serwerową z inną stroną, ale moja strona ma zdecydowanie unikalny adres IP, więc powinno ... powinno być OK, prawda? Jak to jest, że przekraczam limit szybkości bez uruchamiania kodu (lub , uruchamiając go raz?)?

Oto co mam do kodu, jeśli pomaga:

$ch=curl_init("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=screenname"); 
    curl_setopt_array($ch,array(
      CURLOPT_RETURNTRANSFER=>true, 
      CURLOPT_TIMEOUT=>5, 
     ) 
    ); 
$temp=curl_exec($ch); 
curl_close($ch); 
$results=json_decode($temp,true); 

Także, ja teraz mam go tak, że jeśli Twitter zwraca Error Rate Limit, zapisuje błąd w pliku tekstowym , a także czas, w którym limit zostanie zresetowany. Patrząc na ten plik, jedyną aktualizacją (nie mam go przepisać, to po prostu dodaje) jest to, kiedy załadowałem stronę (która może raz lub dwa razy na godzinę), więc to nie jest coś innego używa tej strony i wywołuje ten adres URL.

Każda pomoc?

Odpowiedz

3

Uwierzytelnione żądania powinny być wliczane do limitu 350 użytkowników na godzinę. Nieuwierzytelnione żądania są liczone do limitu 150/godzina twojego adresu IP.

Jeśli podczas opracowywania gier przekroczysz limity, Twitter na ogół bardzo chciał dodać do białej listy adresy IP serwerów dev.

http://dev.twitter.com/pages/rate-limiting

Niektóre aplikacje okaże się, że domyślny limit okaże się niewystarczająca. W takich okolicznościach oferujemy białą listę. Możliwe jest dodanie do białej listy zarówno kont użytkowników, jak i adresów IP. Każdej dozwolonej jednostce, niezależnie od tego, czy konto lub adres IP, jest dozwolone 20 000 żądań na godzinę. Jeśli tworzysz aplikację i chcesz zostać uznany za białą listę, wypełnij numer whitelisting request form. Ze względu na liczbę wniosków nie możemy na nie odpowiedzieć. Jeśli Twoja prośba została zatwierdzona, otrzymasz e-mail.

+0

OK, to ma sens. Ciągnę tylko swój strumień na Twitterze, więc nie będzie potrzeby angażowania innych użytkowników, a nawet moich, ponieważ jest to publiczny strumień. –

+0

Zawsze zapominam, że nie mogę mieć zwrotów w tych odpowiedziach. Jakiś pomysł, dlaczego mogę wpaść na ograniczenie stawki? Nie odświeżam strony blisko 150 razy. Nie powinienem dodawać białej listy, ponieważ powinny to być cztery linie kodu i jestem ustawiony. Ale z jakiegoś powodu w ciągu 20 minut od zresetowania, nawet jeśli nie załadowałem strony raz, mój limit zostanie osiągnięty. –

+0

Sprawdzałbym, z którymi aplikacjami firm zewnętrznych korzystasz na http://twitter.com/settings/connections. Nie przypuszczam, że nie masz adresu IP udostępnionego grupie innych osób? – ceejayoz

Powiązane problemy