Get username field in Facebook Graph API 2.0

FacebookFacebook Graph-Api

Facebook Problem Overview


The "old" Facebook Graph API had a "username" field which could be used to create a human-readable profile URL. My username for example is "sebastian.trug" which results in a Facebook profile URL http://www.facebook.com/sebastian.trug.

With Graph API 2.0 Facebook has removed the "username" field from the user data as retrieved from "/me".

Is there any way to get this data via the 2.0 API or is the "username" now being treated as a deprecated field?

Facebook Solutions


Solution 1 - Facebook

Facebook got rid of the username because the username is one way of sending emails via Facebook.

For example, given the url http://www.facebook.com/sebastian.trug

the corresponding Facebook email would be [email protected]

which, if emailed, would be received to messages directly (if the message setting is set to public), otherwise to the other inbox.

Solution 2 - Facebook

The username field of the User object has been removed, and does not exist in Graph API v2.0. In v2.0 of the API is there is no way to get the FB username of a user.

Source: https://developers.facebook.com/docs/apps/changelog#v2_0_graph_api

> "/me/username is no longer available."

Solution 3 - Facebook

@Simon Cross - It being deprecated is documented, yes. That is not the question, the question is how to get it and -furthermore- I wonder why Facebook has made such a terrible choice and removed the username. Hundreds of applications that rely on the username to create accounts on their service will be broken.

@user3596238 - You can stick with the V.1 API which will be around until the end of April 2015, by far not the best solution but Facebook might be irrelevant by then anyway. https://developers.facebook.com/docs/apps/changelog

Solution: ask the user for a username besides the actual Facebook login? - In my opinion, that makes the Facebook login completely pointless anyway.

Solution 4 - Facebook

While the 2.0 SDK will not provide the username field any longer, it is quite easily scraped if you have the user id number (which you will likely be using to access the graph anyway).

The url facebook.com/<user id> will redirect to facebook.com/<username>, which can then be extracted however you like.

Solution 5 - Facebook

my approach is scrapping the username using nokogiri through the user profile. kinda like this (in ruby):

html = RestClient.get("http://facebook.com/123123xxx)
doc = Nokogiri::HTML(html)
username = doc.css('head meta')[1].attributes["content"].value

Solution 6 - Facebook

One of the ways could be to access facebook.com/{userid} using cURL and then follow the redirect.

The page rediects to facebook.com/{username}

Solution 7 - Facebook

Inspired from @RifkiFauzi 's answer, here is my solution in pure Python

#get html of a page via pure python ref. https://stackoverflow.com/a/23565355/248616
import requests
r = requests.get('http://fb.com/%s' % FB_USER_ID) #open profile page of the facebook user
r.raise_for_status()
html = r.content

#search string with regex ref. https://stackoverflow.com/a/4667014/248616
import re
# m = re.search('meta http-equiv="refresh" content="0; URL=/([^?]+)\?', html)
m = re.search('a class="profileLink" href="([^"]+)"', html)
href = m.group(1) #will be https://www.facebook.com/$FB_USER_NAME on 201705.24
username = href.split('/')[-1]
print(href)
print(username)

Solution 8 - Facebook

https://graph.facebook.com/?id=100005908663675

Simply change id to whatever.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiontruegView Question on Stackoverflow
Solution 1 - FacebookNico ZarrisView Answer on Stackoverflow
Solution 2 - FacebookSimon CrossView Answer on Stackoverflow
Solution 3 - FacebookStefanView Answer on Stackoverflow
Solution 4 - FacebookMatt WayView Answer on Stackoverflow
Solution 5 - FacebookkubidoView Answer on Stackoverflow
Solution 6 - FacebookAkshat GoelView Answer on Stackoverflow
Solution 7 - FacebookNam G VUView Answer on Stackoverflow
Solution 8 - Facebookuser3788486View Answer on Stackoverflow