2015-07-21 16 views
12

Istnieje wiele podobnych pytań, ale nie mogłem znaleźć żadnej przydatnej odpowiedzi. Stworzyłem aplikację Facebook i pobieram dane strony/postu z Facebooka w imieniu tej aplikacji. - Posiadam specjalne uprawnienia read_insights na stronie. - Stworzyłem token dostępu z tym pozwoleniem dla mojej aplikacji na Facebooku. (która zostanie automatycznie przedłużona). Dzisiaj w obliczu problemu z dotarciem do przemijające błędy:Efektywne przetwarzanie danych strony na Facebooku

Error, Code: 4, Message: Application request limit reached 
Error, Code: 17, Message: User request limit reached 

Istnieją odpowiedzi związane z tymi problemami (Facebook api: (#4) Application request limit reached, Facebook OAuth Error: Application request limit reached).

Zgodnie z Polityką platformy na Facebooku powinieneś się z nimi skontaktować, Jeśli przekroczysz lub przekroczysz którykolwiek z poniższych progów, skontaktuj się z nami, ponieważ mogą obowiązywać dodatkowe warunki: (> 5M MAU) lub (> 100M połączeń API dziennie) lub (> 50 milionów wyświetleń dziennie). Moja aplikacja wykonała 300 tys. Połączeń w ciągu tygodnia, więc nie powinna przekraczać tych ograniczeń. Skontaktowałem się z Facebookiem, ale nie otrzymałem jeszcze odpowiedzi.

Chciałbym wiedzieć, jakie są najlepsze praktyki dotyczące pobierania danych z Facebooka. Muszę sprowadzić

1. /page_id?fields... 
2. /page_id/posts?fields... 
3. /post_id/likes?fields... 
4. /post_id/comments?fields... 
5. /page_id/insights/ 
6. /post_id/insights/ 

2-4 Nie mogę korzystać z żądań wsadowych ze względu paginowane wyników Biorę ze limit = 100, dla 5-6 Stworzyłem żądań partii z określonych adresów URL spostrzeżeniu, że ja potrzeba i już nie może zmniejszyć liczby połączeń.

Kiedy wychodził do

Error, Code: 4, Message: Application request limit reached 

I stworzył nową aplikację do pobierania i Statystyk I przyznanych read_insights zgody przez samego Facebooka użytkownika. Potem wychodził do

Error, Code: 17, Message: User request limit reached 

Więc zakładam, że jeśli znak byłyby generowane przez innego użytkownika, który ma uprawnienia do read_insights nowa aplikacja mogła działać.

Czy ktoś może zasugerować, co będzie najlepszym sposobem rozwiązania mojego problemu? Czy powinienem skonfigurować wiele tokenów dostępu do strony dla mojej aplikacji (wygenerowanych przez różnych użytkowników) i przełączać się między nimi, gdy dla jednego z tokenów wystąpił błąd nr 4 lub błąd nr 17?

+0

Jakiego tokenu dostępu używasz? Zgaduję, że token dostępu do strony? – Tobi

+0

Korzystam z tokenu dostępu do strony wygenerowanego dla mojej aplikacji za pomocą eksploratora wykresów z prawem odczytu informacji dla Insights, fot reszta podstawowego tokena aplikacji (app_id | app_secret). –

Odpowiedz

0

Czy próbowałeś następujące elementy?

  • Korzystanie z aktualizacji w czasie rzeczywistym API być powiadamiany o nowych wpisach i komentarzach na stanowiskach nowych, zamiast odpytywania
  • (wygląda to robisz) Zapewnienie używasz stronę token dostępu do strony pobrać dane dla tej strony, a nie token użytkownika lub innej strony
  • Buforowanie danych, które prawdopodobnie nie ulegną zmianie, aby uniknąć ponownego pobierania.
  • Żądanie wielu postów w jednym wywołaniu, zamiast jednego postu na połączenie (za pomocą? Identyfikatory ids = x, y, z opisana tutaj składnia: https://developers.facebook.com/docs/graph-api/making-multiple-requests)

Korzystając z tych metod, można uniknąć uderzania w to całkowicie

+0

Potrzebuję danych historycznych przed pobieraniem w czasie rzeczywistym, więc muszę użyć, ponieważ parametr ... –

+0

Dla wielu żądań Facebook faktycznie oblicza je jako wiele połączeń, a nie jedno, i biorą pod uwagę wiele czynników (w tym procesor i pamięć używaną) dla połączeń –

+0

W najgorszym przypadku planuję zaplanować połączenia dla niektórych wniosków zbiorczych, z pewnym optymalnym odstępem czasu, ale czekam na inne rozwiązanie –

Powiązane problemy