2016-07-05 4 views
0

JSONとFacebookのGraph APIでちょっとやり始めました。以下で私のFacebookページから投稿を引き出すことができました:Facebook Graph API:100件の投稿しか表示できません。

$page_id = '???'; 
$access_token = '???'; 

$json_object = @file_get_contents('https://graph.facebook.com/' . $page_id . 
'/posts?access_token=' . $access_token . '&limit=100'); 
$fbdata = json_decode($json_object); 

foreach ($fbdata->data as $post) { 
    $posts .= '<p><a href="' . $post->link . '">' . $post->story . '</a></p>'; 
    $posts .= '<p><a href="' . $post->link . '">' . $post->message . '</a></p>'; 
    $posts .= '<p>' . $post->description . '</p>'; 
    $posts .= '<br />'; 
} 

echo $posts; 

Facebookは1つのJSONリクエストで100以上の投稿を許可していません。複数のリクエストを行うことでこれを回避する方法はありますか、それとも別の方法でこれを行うべきでしょうか?

誰かが私のFacebookページから既存の投稿をすべて表示する方法を知っていますか?

+0

あなたが取得しているエラーは何ですか?それがなければ私たちは手助けできません。 –

+0

@BRO_THOM申し訳ありませんが、私はより明確に説明しておきました。私が知っている限り、Facebookは1つのJSONリクエストで100の投稿を引き出すことができます。私は、すべての投稿が表示されるまで複数のリクエストを作成する方法を見つける必要があります。または、これについて別の方法で完全に進む必要があります。 –

+0

私はあなたの問題を見ます。あなたは、100の投稿の終わりに達したときに、別の100の投稿を得るために、ajaxまたはpjax呼び出しをトリガーする必要があります。詳細はhttp://api.jquery.com/jquery.ajax/をご覧ください。 –

答えて

1

ポストの無限の量はそれほどのようにそれらをページ付けて表示することができます。

//Set page variable/page number 

if($_GET['page'] == 0) { 
    $page = 1; 
} 
else { 
    $page = $_GET['page']; 
} 

//Page increments/decrements 
$next_page = intval($page + 1); 
$prev_page = intval($page - 1); 

//Set offset if it isn't the first page 
if ($page > 1) { 
    $offset = $page * 5 - 5; 
} 

//Facebook Dev details 
$page_id = '???'; 
$access_token = '???'; 

//Get JSON for specified page 
$json_object = @file_get_contents('https://graph.facebook.com/' . $page_id . 
'/posts?access_token=' . $access_token . '&limit=5' . '&offset=' . $offset); 

//Interpret the data 
$fb_data = json_decode($json_object); 

foreach ($fb_data->data as $post) { 
    $posts .= '<p><a href="http://facebook.com/' . $post->id . '">' . $post->story . '</a></p>'; 
    $posts .= '<p><a href="http://facebook.com/' . $post->id . '">' . $post->message . '</a></p>'; 
    $posts .= '<p>' . $post->description . '</p>'; 
    $posts .= '<br />'; 
} 

//Display posts 
echo $posts; 

//If page isn't the first page add previous button 
if ($page > 1) { 
    echo '<a href="?page=' . $prev_page . '">' . 'Previous' . '</a>'; 
} 

//Total offset of posts on next page 
$next_page_offset = $offset + 5; 

//Make next page object 
$json_next_page_object = @file_get_contents('https://graph.facebook.com/' . $page_id . 
'/posts?access_token=' . $access_token . '&limit=5' . '&offset=' . $next_page_offset); 

//Get JSON for next page 
$fb_next_data = json_decode($json_next_page_object); 

//Echo next button if size of next data is greater than one 
if(sizeof($fb_next_data->data) > 0) { 
    echo '<a href="?page=' . $next_page . '">' . 'Next' . '</a>'; 
} 

おそらくいくつかの改善が必要ですが、これまでのところ、必要に応じてそれが動作します。

私は私がこれまで持っていることは、Facebookのフィードを管理するための基本的かつ簡単に行うことで他の人を助けることを願って

:]

関連する問題