2013-01-03 3 views
10

J'appelleapi graphique Facebook retourne aucun email

https://graph.facebook.com/<user_id>/?access_token=<valid_token> 

ou tout simplement

https://graph.facebook.com/me/?access_token=<valid_token> 

et revenir objet JSON qui ne contient pas de courrier électronique de l'utilisateur principal dont j'ai besoin. J'ai configuré la permission d'email pour l'application et aucun effet. Qu'est-ce qui ne va pas?

+1

Avez-vous déboguer le jeton d'accès pour vérifier obtenu l'autorisation e-mail? –

+1

Vérifiez votre jeton d'accès pour savoir si _really_ contient l'autorisation 'email' ici: https://developers.facebook.com/tools/debug – CBroe

+0

Non, je n'ai pas. Comment puis je faire ça? – heximal

Répondre

7

Avez-vous pensé à demander l'autorisation de courrier électronique dans la demande de connexion? Pour ce faire, en ajoutant le paramètre de portée comme celui-ci dans la demande de connexion (& scope = email):

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URI&state=SOME_ARBITRARY_BUT_UNIQUE_STRING&scope=email 

Facebook API reference

+0

Merci, c'est exactement ce que j'ai oublié de faire – heximal

7

Vous n'avez probablement pas d'autorisations email dans votre jeton d'accès.

Vous pouvez vérifier avec le Acess Token Debugger

+1

Merci encore, pas d'offense, mais j'accepte Andreas répondre comme raison correcte c'était la vraie raison. Mais votre conseil a été très utile pour comprendre la source du problème. – heximal

+0

Pas de problème du tout, vous devriez toujours accepter la meilleure réponse pour vous. –

3

Je crois que votre question est, même après l'octroi de l'autorisation d'accéder au courrier électronique, vous êtes impossible d'obtenir des informations de courrier électronique via l'API graphique. Dans les versions plus récentes, vous devez passer des champs param à l'API pour obtenir des informations supplémentaires, telles que le courrier électronique. Par défaut, il ne fournit que l'identifiant et le nom en réponse. S'il vous plaît trouver un exemple ci-dessous sur la façon d'obtenir d'autres informations à partir du graphique:

https://graph.facebook.com/me?fields=id,email,first_name,gender,last_name,link,locale,name,timezone,updated_time,verified&access_token=<value of access_token>&debug=all 

Espérons que cela aide.

0

Il est possible que l'e-mail ne soit pas vérifié sur facebook. Dans ce cas, Facebook ne le rend pas disponible via l'API. Assurez-vous que votre code gère ce cas.

1

Depuis la sortie de la version 2.5 de l'API, vous pouvez accéder à vos courriels utilisateur comme ceci: https://graph.facebook.com/v2.5/me?fields=id,name,email