Solicitudes de depuración

Modo de depuración de la API Graph

Cuando el modo de depuración está habilitado, la respuesta de la API Graph puede contener campos adicionales que expliquen posibles errores en la solicitud.

Para habilitar el modo de depuración, usa el parámetro de cadena de consulta debug. Por ejemplo:

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 no se otorga el permiso user_friends, se genera la siguiente respuesta:

{
  "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"
      }
    ]
  }
}

El valor del parámetro debug se puede fijar en "all" o en un mínimo nivel de gravedad solicitado que se corresponda con type del mensaje:

Valor del parámetro de depuración Resultado

all

Todos los mensajes de depuración disponibles.

info

Mensajes de depuración con los tipos info y warning.

warning

Solo los mensajes de depuración con el tipo warning.

La información de depuración, cuando está disponible, se devuelve como un objeto JSON con la clave __debug__ en la matriz messages. Cada elemento de esta matriz es un objeto JSON que contiene los siguientes campos:

Campo Tipo de datos Descripción

message

Cadena

El mensaje.

type

Cadena

La gravedad del mensaje.

link

Cadena

[Opcional] Una URL que apunta a información relacionada.

También puedes usar el modo de depuración con el explorador de la API Graph:

Determinar la versión usada por solicitudes de API

Cuando compilas una app y creas solicitudes de la API Graph, es posible que te resulte útil determinar la versión de API de la que recibes una respuesta. Por ejemplo, si haces llamadas sin una versión especificada, es posible que la versión de API que responde no te resulte conocida.

La API Graph proporciona un encabezado de solicitud con cualquier respuesta llamada facebook-api-version que indique la versión exacta de la API que generó la respuesta. Por ejemplo, una llamada a la API Graph que genera una solicitud con la versión 2.0 produce el siguiente encabezado HTTP:

facebook-api-version:v2.0

Este encabezado facebook-api-version te permite determinar si las llamadas a la API se devuelven desde la versión que esperas.

Información de depuración para reportar errores

Cuando se reporta un error en la API Graph, incluimos encabezados adicionales para enviarlos con tu informe de errores a fin de que nos ayudes a identificar y reproducir tu error. Estos encabezados de solicitudes son X-FB-Debug, x-fb-rev y X-FB-Trace-ID.