Ne peux pas obtenir age_range de Facebook API
Selon Facebook de la documentation, age_range est une propriété par défaut lors de la demande de données de l'utilisateur:
https://developers.facebook.com/docs/facebook-login/permissions#reference-basic-info
Cela fonctionne lorsque j'utilise "moi" comme l'identifiant de l'utilisateur avec le bon jeton:
https://graph.facebook.com/me?fields=id%2Cname%2Cemail%2Cfirst_name%2Clast_name%2Cusername%2Cgender%2Cpicture%2Cage_range&format=json&access_token=[accessToken pour le besoin de l'utilisateur]
{
"id": "FACEBOOKID",
"name": "testuser",
"email": "testuser\u0040test.net",
"first_name": "testuser",
"last_name": "testuser",
"gender": "male",
"age_range": {
"min": 21
},
"picture": {
"data": {
"url": "https://...",
"is_silhouette": false
}
}
}
Mais la data_range est alors vide lorsque j'utilise le id utilisateur:
Me donne dos:
{
"id": "FACEBOOKID",
"name": "testuser",
"email": "testuser\u0040test.net",
"first_name": "tftestuser",
"last_name": "tftestuser",
"gender": "male",
"picture": {
"data": {
"url": "http://....",
"is_silhouette": true
}
}
}
Aucune idée pourquoi? Ce qui me manque ici?
Vous en remercie d'avance!
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une réponse à l'aide de l'API ici:
pas de age_range dans facebook réponse (sdk javascript)
L'appel d'api "/me" renvoie les informations par défaut, ce qui n'est pas toujours age_range.
Cependant, vous pouvez demander age_range avec l'appel d'api:
"/me?champs=age_range"
Selon Plate-Forme De Mises À Jour: Opération Développeur Amour -
Donc
age_range
n'est pas remboursé si l'utilisateur n'a pas installé votre application. Comme dans votre cas, l'utilisateur peut ne pas être à l'aide de l'application pour laquelle vous obtenez ce vide.Aussi le but de
age_range
champ est de permettre à votre application de déterminer si votre application peut fournir un certain âge sensibles contenu. Ainsi, la récupération deage_range
pour l'utilisateur d'amis est inapproprié et vous aurez à obtenirfriends_birthday
autorisation.EDIT:
Le lien aussi, dit-
Qui signifie que ce champ est disponible uniquement pour les applications qui ont restreint leur contenu que pour les personnes âgées 18+ et 21+- s'il vous plaît vérifier!
J'ai moi aussi passé des heures à essayer de trouver une solution pour cela.
Suis le partage de mon expérience ci-dessous:
Au départ, j'ai demande un fb session en demandant les détails de l'utilisateur avec les autorisations suivantes:
Avec une session valide je puis appeler une demande à l'aide de ce bloc de code:
Où:
session (string) --> valide et en cours d'ouverture de session
graphPath (string) --> c'est le fb userID (peut être "moi" mais je ne l'ai pas testé, s'il vous plaît laissez-moi savoir si "moi" fonctionne.
bundle --> est le K,V paramètre que l'on vous demande, dans le age_range cas, il est:
Veuillez noter que la demande bloc de code (au moins dans mon cas) a été fait à l'intérieur de la doinBackground de l'intérieur AsyncTask) --> c'est ainsi que mon utilisation de la executeAndWait() la méthode la place de la executeAsync().
Espère que cela aidera quelqu'un avec le même problème. Merci!
Vous pouvez récupérer uniquement utilisateur actuellement connecté est PROPRE age_range et ne pouvez pas interroger les autres de son âge, par conséquent, vous n'obtenez pas de réponse lorsque user_id n'est pas le même que l'id
voir https://stackoverflow.com/a/30731037/4990217
Vous aurez à indiquer explicitement à l'API que vous avez besoin age_range, dans le cadre du profil public (aucune autorisation spéciale n'est requise). L'utilisateur plage d'âge peut être 13 à 17, 18 à 20 ou 21+.
de lire la documentation https://developers.facebook.com/docs/graph-api/reference/age-range/