web-dev-qa-db-fra.com

Comment obtenir le nom d'utilisateur de l'utilisateur dans la version 2.0 ou ultérieure de l'API Graph de Facebook

J'obtenais assez facilement le nom d'utilisateur de l'utilisateur dans l'API 1.0, en utilisant /me et obtenir la propriété username de l'objet de réponse.

Maintenant, je reçois cette erreur avec l'API 2.0:

"(# 12) le nom d'utilisateur est obsolète pour les versions v2.0 et supérieures"

Le seul moyen que j'ai trouvé pour obtenir cela jusqu'à présent était d'utiliser FQL, mais maintenant cela semble obsolète.

Quelqu'un sait comment contourner cela? Merci!

33
joaopribs

Je ne veux pas être inutile, mais il semble que l'accès au nom d'utilisateur ait été supprimé de l'API, pour autant que je sache. Les endroits où une application utilisait peut-être un nom d'utilisateur, comme dans les anciennes boîtes de dialogue de partage, ne peuvent plus le faire lorsqu'ils sont utilisés avec l'API 2.0. Je pense que c'est également un moyen d'empêcher les applications d'avoir accès à des identifiants uniques utilisables en dehors de la portée de l'application - tous les ID utilisateur que vous récupérez sous l'API 2.0 sont spécifiques à votre application seule.

21
giff

J'ai trouvé une solution de contournement simple qui implique une demande d'obtention à Facebook. Au lieu du nom d'utilisateur, Facebook vous donnera un identifiant unique à votre application.

J'ai constaté que faire une demande à https://www.facebook.com/ [profile_id] redirige ensuite vers le profil réel de l'utilisateur. Le nom d'utilisateur peut être extrait de l'URL de redirection.

Exemple:

> curl -i https://www.facebook.com/710290539
HTTP/1.1 301 Moved Permanently
Location: https://www.facebook.com/colinskow

(Remarque: Étant donné que je suis le propriétaire de l'application en mode test, cela pourrait éventuellement être une exception. Veuillez me le faire savoir dans les commentaires si vous pouvez le confirmer dans un environnement de production.)

8
Colin Skow

Pour contourner ce problème, vous pouvez utiliser l'e-mail comme identifiant unique. L'adresse e-mail peut être récupérée en utilisant "e-mail" comme étendue d'autorisation.

Facebook a supprimé le champ du nom d'utilisateur de la nouvelle version de l'API. Il n'est pas possible de récupérer le nom d'utilisateur. Mais Facebook fournit un ID unique spécifique à l'application. Si vous devez partager le même utilisateur entre plusieurs applications, vous pouvez utiliser l'API Business Mapping nouvellement introduite. Cela permet d'ajouter toutes les applications requises à un groupe. Dans ce cas, l'ID sera unique parmi toutes les applications du groupe.

Plus d'informations sur l'API Business Mapping sont disponibles sur https://developers.facebook.com/docs/apps/for-business1

5
user2481857