Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Search Facebook events and pagination (Graph API)

I am requesting this page to get the events with the keyword

"conference":https://graph.facebook.com/search?q=conference&type=event

This works fine.

The problem is the pagination returned:

"paging": {
    "previous":"https://graph.facebook.com/search?q=conference&type=event&limit=25&since=2010-12-18T17%3A00%3A00%2B0000",
    "next":"https://graph.facebook.com/search?q=conference&type=event&limit=25&until=2010-11-04T16%3A29%3A59%2B0000"
 }

It seems to have more events with "conference", but requesting these 2 pagination URLS returns no data.

It's weird because it's the same for any requested keyword, and the pagination URLs returned by the Facebook API seems to always returns empty data.

Does anyone know what's the issue?

Thanks

like image 641
kire Avatar asked Nov 08 '10 15:11

kire


People also ask

How do I get data from Facebook Graph API?

Open the Graph Explorer in a new browser window. This allows you to execute the examples as you read this tutorial. The explorer loads with a default query with the GET method, the lastest version of the Graph API, the /me node and the id and name fields in the Query String Field, and your Facebook App.

How do I get Facebook Page Insights on graph API?

You can access Page Insights by typing /insights after the name of your page in the URL field. This command will retrieve all of the Insights associated with your Page. Type "/insights" after your company name. Click the Submit button.

Is Facebook Graph API deprecated?

Graph API Version Deprecations: November 2, 2021: Graph API v4. 0 will be deprecated and removed from the platform. February 3, 2022: Graph API v5. 0 will be deprecated and removed from the platform.

What 3 terms does Facebook use to describe what the graph API is composed of?

The Graph API is named after the idea of a "social graph" — a representation of the information on Facebook. It's composed of nodes, edges, and fields.


2 Answers

I encountered similar confusion with a query against places. The "next" URL behaved exactly as you described it.

I could query location information using a url like this:

https://graph.facebook.com/search?access_token=INSERT_TOKEN&type=place&center=55.8660,-4.2715&distance=150&limit=10

And got back JSON with the first 10 places plus the following fragment which suggests the existence of paging params:

"paging": {
      "next": "https://graph.facebook.com/search?access_token=INSERT_TOKEN&type=place&center=55.8660\u00252C-4.2715&distance=150&limit=10&offset=10"

Hitting that URL doesn't work. But I did figure out a combination of limit and offset params that gave me effective paging.

limit=10 & offset not defined => first 10 results
limit=20 & offset=10 => next 10 results
limit=30 & offset=20 => next 10 results
limit=40 & offset=30 => last 8 results (can stop here because less than 10 back)
limit=50 & offset=40 => confirmation that there are no more results

I realise that I've got "limit" and "offset" rather than the "limit" and "until" params that you get, but, hopefully you could apply the same technique i.e. keep incrementing the limit and inc the date/time to that of your last result?

like image 130
stephen Avatar answered Nov 15 '22 23:11

stephen


I think this is a standard practice in Facebook Graph API. I think if your request resulted to a non empty JSON, they will always give you the next paging, even though it might be empty.

I am however not 100% sure, because Facebook Graph API does not seem to be very well documented... (for example they said we can modify this pagination thing but did not explain clearly how to do it).

like image 37
Enrico Susatyo Avatar answered Nov 15 '22 22:11

Enrico Susatyo