web-dev-qa-db-fra.com

Obtenir l'ID utilisateur Facebook à partir d'un identifiant utilisateur couvert par une application

Avec la mise à niveau de Facebook Graph API v1.0 à v2.0, Facebook utilise des "ID utilisateur à la portée d'une application", de sorte que je ne peux plus voir l'ID utilisateur "original" dans mes applications.

J'ai toujours utilisé les mises à jour en temps réel et les appels d'API graphiques comme " https://graph.facebook.com/ {postId}/comments " pour analyser l'activité des utilisateurs sur la page Facebook où se trouvait l'application. Mais puisque ces données contiennent l'ID utilisateur d'origine, je ne peux plus faire correspondre les activités à mes utilisateurs enregistrés!

Alors, y a-t-il un moyen d'obtenir l'ID utilisateur Facebook d'origine à partir d'un ID utilisateur ayant une portée d'application? Ou l'inverse?

MODIFIER:

J'ai fini par aller chercher les ID d'application pour tous mes utilisateurs en utilisant la méthode d'API mentionnée ici: https://stackoverflow.com/a/29154912/3432305 et les ai stockés dans ma base de données en plus des ancien identifiant. Ensuite, chaque fois qu'une RTU arrivait, je vérifiais pour les "anciens utilisateurs" quel utilisateur possédait cet ID d'application et je traitais la mise à jour. Au moins Facebook a-t-il réussi à résoudre le bogue mentionné dans les commentaires ( Obtenir l'ID utilisateur Facebook de l'ID utilisateur app-scoped ) quelques jours avant que l'API v1.0 ne soit obsolète, donc pour les nouveaux utilisateurs de mes applications , il fonctionne comme un charme. Jusque là...

42
kolli

il n’existe aucune possibilité (simple/évidente) d’obtenir un véritable identifiant d’utilisateur basé sur un identifiant d’application.

10
Johannes N.

De votre conversation entre Johannes N.

Puis-je obtenir les identifiants d'applications (pour les applications que je possède) via l'identifiant d'utilisateur d'origine. cela aiderait aussi.

Pour obtenir des identifiants d’application à partir de l’identifiant d’utilisateur original, vous pouvez facilement le faire via:

https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USER_ID&access_token=ACCESS_TOKEN

enter image description here

Vous pouvez utiliser le paramètre fields pour renvoyer uniquement id:

https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USER_ID&fields=id&access_token=ACCESS_TOKEN

enter image description here

L'avantage de ids au lieu de id car vous pouvez interroger plusieurs ids:

enter image description here * www peut être supprimé pour minimiser le nombre de caractères.

Pour obtenir des identifiants d’application à partir du nom d’utilisateur, vous pouvez également le faire facilement:

https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USERNAME&access_token=ACCESS_TOKEN

enter image description here

27
林果皞

Vous ne pouvez pas aller de réel à réel. Votre meilleur pari est de les convertir tous en objectifs. C'est assez simple:

https://graph.facebook.com/?ids=REAL_ID&access_token=APP_ID|APP_SECRET

Voici un code simple Ruby):

require 'open-uri'
require 'json'

json = JSON.load(open("https://graph.facebook.com/?ids=#{real_id}&access_token=#{FACEBOOK_APP_ID}|#{FACEBOOK_APP_SECRET}"))
scoped_id = /app_scoped_user_id\/(\d+)\//.match(json[real_id.to_s]['link'])[1]
6
Sam Soffes