web-dev-qa-db-fra.com

La méthode FB.api ('/ me') de Facebook JS SDK ne renvoie pas les champs que j'attendais dans Graph API v2.4 +

J'essaie d'obtenir des informations de base à l'aide de l'API Facebook, mais jusqu'à présent, je ne reçois que le nom et l'identifiant de l'utilisateur. Un péché { name: "Juan Fuentes", id: "123456" }

J'ai besoin de plus d'informations, comme un email, un prénom, un nom de famille et son anniversaire

C'est mon code js

function facebookLogin() {
  FB.login(function(response) {
    var token = response.authResponse.accessToken;
    var uid = response.authResponse.userID;
    if (response.authResponse) {
      FB.api('/me', 'get', { access_token: token }, function(response) {
        console.log(response);
      });

      FB.api('/'+uid, 'get', { access_token: token }, function(response) {
        console.log(response);
      });
    }
  },
  { scope: 'public_profile' }
  );
}

Et c’est le bouton qui l’active

<a id="fb-login" href="#" onclick="facebookLogin()"></a>
32
Juan Fuentes

Vous devez spécifier manuellement chaque champ depuis Graph API v2.4:

Champs déclaratifs
Pour essayer d'améliorer les performances sur les réseaux mobiles, Nodes and Edges dans la v2.4 nécessite que vous demandiez explicitement le ou les champs nécessaires pour vos demandes GET. Par exemple, GET /v2.4/me/feed n'inclut plus les likes et les commentaires par défaut, mais GET /v2.4/me/feed?fields=comments,likes retournera les données. Pour plus de détails, voir la documentation sur la manière de demander des champs spécifiques.

Par exemple.

FB.api('/me', 'get', { access_token: token, fields: 'id,name,gender' }, function(response) {
    console.log(response);
});
55
Tobi

Il est également possible d'utiliser cette syntaxe pour les données de la portée de public_profile (testé dans Graph API v2.9):

FB.api('/me?fields=birthday,link,gender,age_range', function(response) {
   console.log(response);
});

Vous pouvez tester les valeurs possibles en ligne dans Graph API Explorer , cliquez simplement sur le bouton "Obtenir un jeton":

https://developers.facebook.com/tools/Explorer/?method=GET&path=me%3Ffields%3Dbirthday%2Clink%2Cgender%2Cage_range&version=v2.9

4
NXT