2016-06-26 41 views
6

Próbuję pobrać wszystkie zdjęcia i filmy z wydarzenia na Facebooku za pomocą interfejsu API wykresu Facebook.Pobieranie zdjęć i filmów z wydarzenia na Facebooku za pomocą interfejsu Graph API

Obecnie używam końcowego /{event-id}/feed, opisane tutaj https://developers.facebook.com/docs/graph-api/reference/v2.6/event/feed

mogę prawie wszystko, czego potrzebuję od tego punktu końcowego, określając pól chcę, ale mam problemy z dostaniem się do The URL filmy w pełnej rozdzielczości. Mogę je łatwo uzyskać, wykonując kolejne wywołanie API, ale chcę, jeśli to możliwe, uniknąć kolejnego wywołania API dla wszystkich filmów.

Należy zauważyć, że punkt końcowy /{event-id}/feed zwraca tablicę o wartości Post objects, której właśnie dokonuję kwerendy przy użyciu parametru zapytania fields.

https://developers.facebook.com/docs/graph-api/reference/v2.6/post

Oto pola jestem określając przy wywołaniu /{event-id}/feed końcowy

Pole attachments daje mi adres obrazu wideo w wysokiej rozdzielczości i ID samego filmu. Oznacza to, że muszę wykonać dodatkowe wywołanie API, aby uzyskać adres URL filmu w wysokiej rozdzielczości przy użyciu punktu końcowego /{video-id}.

"attachments": { 
     "data": [ 
      { 
       "media": { 
       "image": { 
        "height": 405, 
        "src": "https://scontent.xx.fbcdn.net/v/t15.0-10/s720x720/13433040_10154318390596912_1315696369_n.jpg?oh=46987fa671df2deca3ce935a68e1ff30&oe=58008D60", 
        "width": 720 
       } 
       }, 
       "target": { 
       "id": "10154318389716912", 
       "url": "https://www.facebook.com/{username-removed}/videos/10154318389716912/" 
       }, 
       "type": "video_autoplay", 
       "url": "https://www.facebook.com/{username-removed}/videos/10154318389716912/" 
      } 
     ] 
    } 

Pole nr source daje link do filmu w niskiej rozdzielczości.

"source": "https://video.xx.fbcdn.net/v/t42.1790-2/13543016_152852391800500_1248221173_n.mp4?efg=eyJybHIiOjMxMywicmxhIjo1MTIsInZlbmNvZGVfdGFnIjoic3ZlX3NkIn0\u00253D&rl=313&vabr=174&oh=f0f42856741b81030ea529fe89f80834&oe=5771B45B" 

Pole object_id podaje identyfikator wideo.

Pole properties podaje mi długość filmu.

Więc nie mam szczęścia. Zastanawiam się, czy możliwe jest wykonanie zagnieżdżonego połączenia, które dałoby mi adres URL wideo o wysokiej rozdzielczości, lub gdybym mógł nazwać jakiś punkt końcowy za pomocą identyfikatora wideo, który zwraca 302 przekierowanie do wideo. Czy mogę zmodyfikować parametry do źródłowego adresu URL?

Każda pomoc jest doceniana. Dzięki!

Odpowiedz

2

... Zastanawiam się, czy to możliwe, aby zarobić trochę zagnieżdżony połączenia, które Daj mi adres URL wideo wysokiej rozdzielczości ...

Rozwiązanie:

Aby wykonać wszystkie żądane połączenia API na raz, możesz wypróbować zgłoszeń zbiorczych z interfejsem Graph API.

zobacz dokumentację & przykłady adresem: Facebook API - Making Multiple Requests

cytat z Docs:

" ... dozujący pozwala przekazać instrukcje dla kilku operacji w żądaniu HTTP pojedynczego You. może również określać zależności między powiązanymi operacjami (opisane poniżej) Facebook będzie przetwarzał każde z twoich niezależnych operacji równolegle i będzie przetwarzał Twoje operacje zależne są wykonywane kolejno. Gdy wszystkie operacje zostaną zakończone, skonsolidowana odpowiedź zostanie przekazana do Ciebie, a połączenie HTTP zostanie zamknięte. "

Jak widać, jest to, aby wiele żądań i tworzenie zależności między nimi.
Więc kiedy uzyskać video_id jesteś w stanie zamówić film właśnie tam w rozdzielczości chcesz.

+1

Witaj, @Rui, witam w StackOverflow, mam nadzieję, że nie masz nic przeciwko edycji, tylko ułagodzenie odpowiedzi na to pytanie.Jedynym małym usprawnieniem, które mogę wymyślić, jest to, że sam dostarczyłeś testowalny przykładowy kod, ale naprawdę nie jest potrzebny ponieważ link objaśnia wszystko, powodzenia –

+0

To jest to, do czego dążyłem, ale nie byłem pewien jak. Byłoby wspaniale, gdyby był przykład w jaki sposób mogę grupować te żądania razem, aby pierwsze żądanie zwróciło identyfikatory wideo, które wywołałoby drugie żądanie, jeśli ma to sens. – raRaRa