Comment obtenir le Facebook id d'utilisateur en utilisant le jeton d'accès
J'ai un Facebook application de bureau et je suis en utilisant le L'API graphique.
Je suis en mesure d'obtenir le jeton d'accès, mais après que c'est fait, je ne sais pas comment récupérer l'ID de l'utilisateur.
Mon flow est comme ceci:
-
J'envoie à l'utilisateur de https://graph.facebook.com/oauth/authorize avec tout le nécessaire d'autorisations étendues.
-
Dans ma page de redirection je obtenir le code de Facebook.
-
Puis-je effectuer une requête HTTP à graph.facebook.com/oauth/access_token avec ma clé API et l'-je obtenir le jeton d'accès dans la réponse.
À partir de ce moment je ne peux pas obtenir l'ID de l'utilisateur.
Comment résoudre ce problème?
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez utiliser l'API Graphique pour obtenir l'ID de l'utilisateur courant alors il suffit d'envoyer une demande à:
https://graph.facebook.com/me?fields=id&access_token=xxxxxx
La façon la plus simple est
alors vous obtiendrez des réponses json qui contient uniquement id utilisateur.
Le facebook d'accès jeton ressemble trop
"1249203702/2.h1MTNeLqcLqw__.86400.129394400-605430316|-WE1iH_CV-afTgyhDPc"
si vous extrait la partie du milieu à l'aide de | à split, vous obtenez
2.h1MTNeLqcLqw__.86400.129394400-605430316
puis diviser à nouveau par -
la dernière partie 605430316 est l'id de l'utilisateur.
Voici le code C# pour extraire l'id de l'utilisateur dans le jeton d'accès:
AVERTISSEMENT:
La structure du jeton d'accès est sans papiers et ne peut pas toujours fonction de la configuration ci-dessus. Utilisez à votre propre risque.
Mise à jour
En raison de changements dans Facebook.
la méthode préférée pour obtenir l'identifiant de l'accès crypté jeton est comme suit:
Vous pouvez utiliser le code ci-dessous sur onSuccess(LoginResult loginResult)
Vous avez juste à frapper un autre API Graphique:
Il donnera à votre e-mail de l'Id utilisateur et Id (pour Facebook) également.
Avec la nouvelle API, voici le code que j'ai utilisé pour cela
dans FacebookSDK v2.1 (je ne peux pas vérifier ancienne version). Nous avons
Cependant, selon le commentaire de FacebookSDK
@la discussion, Ce ne peut pas être remplie pour la connexion des comportements tels que l'iOS système de compte.
Donc peut-être vous devriez vérifier si il est disponible, et si l'utiliser, ou d'appeler la demande pour obtenir l'id de l'utilisateur
Découvrez ce réponse, qui décrit comment faire pour obtenir l'ID de la réponse.
Tout d'abord, vous devez créer la méthode d'obtenir des données:
Alors il suffit d'utiliser votre méthode à chaque fois que vous voulez, comme ceci: