L'ancienne API Graph Facebook avait un champ "nom d'utilisateur" qui pouvait être utilisé pour créer une URL de profil lisible par l'homme. Mon nom d'utilisateur, par exemple, est "sebastian.trug", ce qui donne une URL de profil Facebook http://www.facebook.com/sebastian.trug .
Avec Graph API 2.0 Facebook a supprimé le champ "nom d'utilisateur" à partir des données utilisateur extraites de "/ me".
Existe-t-il un moyen d'obtenir ces données via l'API 2.0 ou le "nom d'utilisateur" est-il maintenant traité comme un champ obsolète?
Facebook s'est débarrassé du nom d'utilisateur car ce dernier est un moyen d'envoyer des courriels via Facebook.
Par exemple, étant donné l'URL http://www.facebook.com/sebastian.trug
l'e-mail Facebook correspondant serait [email protected]
qui, si elles étaient envoyées par courrier électronique, seraient reçues directement à messages
(si le paramètre message
est défini sur public
), sinon à la boîte de réception other
.
Le champ username
de l'objet Utilisateur a été supprimé et n'existe pas dans Graph API v2.0. Dans la v2.0 de l'API, il n'existe aucun moyen d'obtenir le nom d'utilisateur FB d'un utilisateur.
Source: https://developers.facebook.com/docs/apps/changelog#v2_0_graph_api
"/ me/nom d'utilisateur n'est plus disponible."
@Simon Cross - Oui, c'est obsolète. Ce n’est pas la question, mais comment l’obtenir et, de plus, je me demande pourquoi Facebook a fait un choix si terrible et a supprimé le nom d’utilisateur. Des centaines d'applications qui s'appuient sur le nom d'utilisateur pour créer des comptes sur leur service seront endommagées.
@ user3596238 - Vous pouvez vous en tenir à l'API V.1 qui sera disponible jusqu'à la fin avril 2015, ce n'est de loin pas la meilleure solution, mais Facebook pourrait de toute façon ne plus être pertinent. https://developers.facebook.com/docs/apps/changelog
Solution: demander à l'utilisateur un nom d'utilisateur en plus de la connexion Facebook réelle? - À mon avis, cela rend de toute façon totalement inutile la connexion à Facebook.
Bien que le SDK 2.0 ne fournisse plus le champ username
, il est assez facile de le supprimer si vous avez le numéro d’identifiant de l’utilisateur (que vous utiliserez probablement pour accéder au graphique de toute façon).
L'URL facebook.com/<user id>
va rediriger vers facebook.com/<username>
, qui peut ensuite être extrait à votre guise.
mon approche consiste à supprimer le nom d'utilisateur à l'aide de nokogiri via le profil de l'utilisateur. un peu comme ça (en rubis):
html = RestClient.get("http://facebook.com/123123xxx)
doc = Nokogiri::HTML(html)
username = doc.css('head meta')[1].attributes["content"].value
L’un des moyens pourrait être d’accéder à facebook.com/{userid} en utilisant cURL, puis de suivre la redirection.
La page renvoie à facebook.com/{username}