2015-11-13 59 views
0

我試圖通過某個頁面id,包括事件圖片獲取所有事件。我在這方面取得了成功,但我使用的這種方法非常非常慢。我會盡可能好地解釋該方法。Facebook的PHP SDK通過事件(帶事件圖片)循環通過頁面ID

步驟1

$request = new FacebookRequest(
    $session, 
    'GET', 
    '/{page-id}', 
    array(
    'fields' => 'events' 
) 
); 

我用這個請求得到由頁ID的所有事件。這會返回一個包含所有事件的數組。但是,此數組不包含屬於每個事件的圖片。爲了解決這個問題,我使用了第二個循環來獲取每個獨特事件的事件圖片。

注意,這個循環之前,我確信,該​​數組只存在事件尚未發生,以及循環的限制(即5)

步驟2

$request = new FacebookRequest(
    $session, 
    'GET', 
    '/$eventId', // this is the unique event id per event 
    array(
     'fields' => 'cover' 
    ) 
); 

這現在給我每個獨特事件的封面。它有效,但肯定不太漂亮。此外,它使頁面非常非常慢,因爲它在加載頁面之前必須循環6個請求。

有沒有人可以幫助我弄清楚如何在一個請求中獲取所有這些信息?我確信有人願意提供幫助。

在此先感謝!

回答

0

不是要求的事件作爲一個「場」中,你可以使用

/page-id/events?fields=cover,description,… 

但是,如果你有一個理由,請求其作爲一個字段(如因爲要在頁面請求等領域同去),你可以做到這一點爲好,使用範圍擴大 - https://developers.facebook.com/docs/graph-api/using-graph-api/v2.5#fieldexpansion

/page-id?fields=events{description,cover,…} 

可口可樂領域= {事件說明,蓋}

+0

感謝您的輸入!這真的有幫助。你真棒。我還有一個小問題:是否有任何簡單的方法來反轉傳入數據對象的順序(通過請求)? 我使用這個代碼 '//獲取事件\t \t $請求=新FacebookRequest( \t $會議, \t 'GET', \t 「/(編號)/事件?限制= $ eventLimit」 , \t陣列( \t '字段'=> '的說明中,蓋,START_TIME,END_TIME,名稱' \t) \t);' – IroNLioNZioN

+0

其中'$ eventLimit'是可變的整數。 – IroNLioNZioN

+0

不,沒有辦法對大多數API端點進行這種排序,包括這一種。 – CBroe