10

Szukam optymalizacji mojej aplikacji na Facebooku.Wykonywanie połączeń z interfejsu Facebook Graph API przy użyciu rozszerzenia pola jest obliczane w różny sposób w porównaniu z limitami stawek niż połączenia grupowe.

Dzisiaj nawiązać połączenie wsadowy z czterech wykresów wywołań API:

/me 
/me/friends 
/me/likes 
/me/feed 

Jeśli zmienię to do jednej rozmowy wykres API używając rozszerzenia pola tak:

/me?fields=id,name,username,friends,likes,feed 

Will że teraz liczyć jako jedno trafienie przeciwko API zamiast czterech dla celów ograniczenia stopy?

+0

Tak, powinno być, wszystko inne nie miałoby sensu. – CBroe

+1

Zgadzam się, że wydaje się to oczywiste, ale ograniczenie stawki FB jest dość nieprzejrzyste, więc chciałbym usłyszeć, że ludzie z FB potwierdzają założenie. –

+0

Twoje drugie połączenie * to * pojedyncze połączenie API. Nie używasz w niej rozszerzenia pola. – cpilko

Odpowiedz

3

Niestety, każde wywołanie partii jest liczone jako wywołanie api, po prostu szybciej jest wywołać je w grupie, ponieważ będzie to 1 żądanie. Zobacz tutaj dokumentacja na Facebook API:

Granice
Obecnie ograniczyć liczbę wniosków, które mogą być w partii do 50, ale każda rozmowa w partii jest liczony oddzielnie dla celów obliczania limitów połączeń API i ograniczenia zasobów. Na przykład partia 10 wywołań interfejsu API będzie liczona jako 10 wywołań, a każde wywołanie w ramach partii przyczynia się do limitów zasobów procesora w ten sam sposób.

Źródło: https://developers.facebook.com/docs/reference/api/batch/

+1

Facebook updated ich oficjalnej dokumentacji w między czasie, że to pytanie zostało zadane i odpowiedzi. Dzięki Kevin! –

+1

@RichSutton Nps. Tak myślałem, że coś takiego :) –

+0

polowego Expansion! = Partii. Pakiet wysyła do Facebooka wiele, ale nie koniecznych, powiązanych zapytań w jednym żądaniu. Ekspansja pól jest jak wykonywanie wiązań w SQL. To tylko jedno połączenie. – Galen

0

Według Facebook Docs,

Funkcja rozszerzeń Dziedzina Graph API, pozwala skutecznie "join" wielu zapytań wykresu w jednym połączeniu.

Tak więc powyższe zapytania będą reprezentowały cztery wywołania w formularzu Batch i jedno wywołanie w formularzu Field Expanded.

Jak napisałem w komentarzu powyżej: Partia wysyła do Facebooka wiele, ale niekoniecznie powiązanych zapytań w jednym żądaniu. Ekspansja pól jest jak wykonywanie sprzężeń w SQL za pomocą pojedynczego zapytania.

2

Na podstawie przeprowadzonych w czasie rzeczywistym testów odkryłem, że ekspansja terenowa może liczyć na wiele zastosowań w ramach limitu stawki. Na przykład, począwszy od stanu cichego, sekwencja 63 wywołań rozszerzonych w terenie do pojedynczego api (graph.facebook.com/IDENTITY/posts) doprowadziła nas do limitu 600 połączeń.