Facebook Graph API – Get ID from Facebook Page URL

facebookfacebook-graph-api

I have seen this question but what I want is different.

I want to get the Facebook ID not from a general URL (and therefore conditional if it has Like button or not). I want to get the Facebook ID given a Facebook page using the Graph API.

Notice that Facebook pages can have several formats, such as:

http://www.facebook.com/my_page_name
http://www.facebook.com/pages/my_page_name
http://www.facebook.com/my_page_ID

I know I could do some regex to get either the my_page name or my_page_ID, but I am wondering if any one know if GraphAPI is supporting what I want.

Best Answer

It seems to me that the easiest solution to what you describe is to just get the id/name from the url you have using lastIndexOf("/") (which most languages have an equivalent for) and then get "https://graph.facebook.com/" + id.

The data that this url returns has the id (i.e.: 6708787004) and the username (i.e.: southpark), so regardless of which identifier you use (what you extract from the url using lastIndexOf), you should get the same result.


Edit

This code:

identifier = url.substring(url.lastIndexOf("/"))
graphUrl = "https://graph.facebook.com/" + identifier
urlJsonData = getGraphData(graphUrl)

Should work the same (that is result with the same data) for both:

url = http://www.facebook.com/southpark

And

url = http://www.facebook.com/6708787004

(you'll obviously need to implement the getGraphData method).

Also, the 2nd url form in the question is not a valid url for pages, at least not from my tests, I get:

You may have clicked an expired link or mistyped the address. Some web addresses are case sensitive.