Débogage des requêtes

Mode de débogage de l’API Graph

Quand le mode de débogage est activé, la réponse de l’API Graph peut contenir des champs supplémentaires qui expliquent les éventuelles erreurs contenues dans la requête.

Pour activer le mode de débogage, utilisez le paramètre de chaîne de requêtes debug. Par exemple :

curl -i -X GET \
  "https://graph.facebook.com/{user-id}
    ?fields=friends
    &debug=all
    &access_token={your-access-token}"
GraphRequest request = GraphRequest.newMeRequest(
  accessToken,
  new GraphRequest.GraphJSONObjectCallback() {
    @Override
    public void onCompleted(JSONObject object, GraphResponse response) {
      // Insert your code here
    }
});

Bundle parameters = new Bundle();
parameters.putString("fields", "friends");
parameters.putString("debug", "all");
request.setParameters(parameters);
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{user-id}"
           parameters:@{ @"fields": @"friends",@"debug": @"all",}
           HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{user-id}',
  'GET',
  {"fields":"friends","debug":"all"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->get(
    '/{user-id}',
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Si l’autorisation user_friends n’a pas été attribuée, la réponse est la suivante :

{
  "data": [
  ], 
  "__debug__": {
    "messages": [
      {
        "message": "Field friends is only accessible on User object, if user_friends permission is granted by the user", 
        "type": "warning"
      }, 
      {
        "link": "https://developers.facebook.com/docs/apps/changelog#v2_0", 
        "message": "Only friends who have installed the app are returned in versions greater or equal to v2.0.", 
        "type": "info"
      }
    ]
  }
}

La valeur du paramètre debug peut être définie sur « all » ou sur un niveau de gravité minimal requis correspondant au paramètre type du message :

Valeur du paramètre de débogage Réponse renvoyée

all

Tous les messages de débogage disponibles.

info

Messages de débogage de types info et warning.

warning

Messages de débogage de type warning uniquement.

Quand elles sont disponibles, les informations de débogage sont renvoyées sous forme d’objet JSON sous la clé __debug__ dans la grille messages. Chaque élément de cette grille est un objet JSON qui contient les champs suivants :

Champ Type de données Description

message

Chaîne

Le message en question.

type

Chaîne

Gravité du message.

link

Chaîne

[Facultatif] URL renvoyant vers des informations connexes.

Vous pouvez également utiliser le mode de débogage avec l’Explorateur de l’API Graph.

Déterminer la version utilisée par les requêtes d’API

Au moment de créer une application et d’envoyer des requêtes d’API Graph, il peut être utile de déterminer la version de l’API à l’origine de la réponse. Par exemple, si vous passez des appels sans spécifier de version, vous pouvez recevoir une réponse d’une version d’API que vous ne connaissez pas.

L’API Graph fournit dans chaque réponse un en-tête de requête appelé facebook-api-version qui indique précisément la version de l’API à l’origine de la réponse. Par exemple, un appel de l’API Graph générant une requête avec la version 2.0 peut produire l’en-tête HTTP suivant :

facebook-api-version:v2.0

Cet en-tête facebook-api-version vous permet de déterminer si les appels d’API proviennent de la version attendue.

Informations de débogage pour le signalement des bugs

Quand vous signalez un bug dans l’API Graph, nous intégrons dans votre rapport de signalement des en-têtes supplémentaires afin de nous permettre de trouver et de reproduire le problème que vous avez rencontré. Ces en-têtes de requête sont : X-FB-Debug, x-fb-rev et X-FB-Trace-ID.