20

ID を参照して、Facebook グループからすべての投稿を取得したいと考えています。私はこれを試しました:

https://graph.facebook.com/".$group_id."/feed?time_format=U&".$authToken

特定の投稿のみを提供します。ページネーション URL ではなく、可能であればすべての投稿を単一の URL で取得したいと考えています。しかし、ページネーションURLにはページングトークンが含まれています

https://graph.facebook.com/55259308085/feed?limit=500&access_token=ACCESS_TOKEN&until=1298025645&__paging_token=55259308085_10150259582898086

ページングトークンとUntilとは??

私を正しい道に導いてください。ありがとうございました。

4

3 に答える 3

16
set_time_limit(99999999);
ini_set('memory_limit', "9999M");

function fetchUrl($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 40);
    
    $data = curl_exec($ch);
    curl_close($ch);
    
    return $data;
}

$url_array = array();

function recurse_it($url, $c) {
    global $url_array;
    $feeds         = fetchUrl($url);
    $feed_data_obj = json_decode($feeds, true);
    if (!empty($feed_data_obj['data'])) {
        $next_url      = $feed_data_obj['paging']['next'];
        $url_array[$c] = $next_url;
        recurse_it($next_url, $c + 1);
    }
    return $url_array;
}

$url = "https://graph.facebook.com/55259308085/groups?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$arr = recurse_it($url, 0);
print_r($arr);

は、 foreach$arrを使用してページネーションのすべてのコンテンツをループする、使用可能なすべてのページネーション リンクの配列です。

于 2013-02-21T04:02:52.630 に答える
12

PHPでこれを試してください:

$response = file_get_contents("https://graph.facebook.com/$group_id/feed?limit=1000&access_token=$access_token");

1000投稿の制限のあるページが表示されます。JSON 応答を PHP 連想配列に変換します。

$array = json_decode($response, true);
// Do your own stuff with $array ...

次のページを取得します。

$response = file_get_contents($array['paging']['next']);

$array['data']応答で空になるまで、ループでこれを試してください。


until - これは、投稿がフェッチされるまでの時点を指定するために使用される UNIX 時間整数です (それ以降に作成された投稿のみが表示されます)。

于 2013-02-20T16:30:17.450 に答える
2
$url_array=array();
$url="https://graph.facebook.com/v2.2/".$fbpageid."/feed?access_token=".$access_token."&limit=250&fields=full_picture,picture,id,message,name,caption,description,updated_time,link,icon,from,privacy,type,status_type,application,object_id,story,story_tags,actions";

function recurse_it($url,$c)
{
    $feeds=file_get_contents($url);
    $feed_data_obj=json_decode($feeds,true);
    while(!empty($feed_data_obj['data']))
    {   
        $next_url      = $feed_data_obj['paging']['next'];
        $url_array[$c] = $next_url;
        $feeds=file_get_contents($next_url);
        $feed_data_obj=json_decode($feeds,true);
        $c=$c+1;
    }
    return $url_array;
}
$final_result=recurse_it($url,0);
于 2015-03-31T11:26:20.363 に答える