Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get all posts of a group via facebook graph api

Tags:

I want to grab all the posts from the facebook group with reference to its ID. I tried this:

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

which only gives me certain posts. I want all the posts to be retrieved by a single url if possible if not by pagination url. But pagination url contains paging token as

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

What is paging token and Until ??

Please direct me to the right path. Thank you.

like image 702
Prajwol Onta Avatar asked Feb 17 '13 09:02

Prajwol Onta


People also ask

Is Facebook graph API deprecated?

API Version Deprecations: As part of Facebook's Graph API and Marketing API, please note the upcoming deprecations: August 3, 2021: Graph API v3. 3 will be deprecated and removed from the platform. August 25, 2021 Marketing API v9.

Is Facebook graph API a REST API?

Yes, it is a REST API as well. Show activity on this post. Yes, there have been 3 Facebook API's to date: Legacy REST.


1 Answers

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);

Where $arr is an array of all the available pagination links for which I used a foreach to loop through all the contents of the pagination.

like image 147
Prajwol Onta Avatar answered Oct 14 '22 02:10

Prajwol Onta