Solicitações de depuração

Modo de depuração da Graph API

Quando o modo de depuração estiver ativado, a resposta da Graph API pode conter campos adicionais que explicam possíveis problemas na solicitação.

Para habilitar o modo de depuração, use o parâmetro de string de consulta debug. Por exemplo:

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();

Se a permissão user_friends não tiver sido concedida, esta resposta será gerada:

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

O valor do parâmetro debug pode ser definido como "all" ou como o nível mínimo de gravidade solicitado que corresponda ao type da mensagem:

Valor do parâmetro de depuração O que será retornado

all

Todas as mensagens de depuração disponíveis.

info

As mensagens de depuração com os tipos info e warning.

warning

Somente mensagens de depuração com o tipo warning.

As informações de depuração, quando disponíveis, são retornadas como objetos JSON sob a chave __debug__ na matriz messages. Todos os elementos dessa matriz são objetos JSON com os campos a seguir:

Campo Tipo de dado Descrição

message

String

A mensagem.

type

String

A gravidade da mensagem.

link

String

Uma URL apontando as informações relacionadas (opcional).

Também é possível usar modo de depuração com o Explorador da Graph API.

Determinar a versão usada nas solicitações de API

Ao criar um app e fazer solicitações da Graph API, é útil saber qual versão da API está enviando as respostas. Por exemplo, caso esteja fazendo chamadas sem uma versão especificada, talvez você não saiba qual a versão de API que está respondendo.

A Graph API fornece um cabeçalho de solicitação chamado facebook-api-version em todas as respostas que indica a versão exata da API que as gerou. Por exemplo, uma chamada da Graph API que gera uma solicitação na versão 2.0 produz o seguinte cabeçalho HTTP:

facebook-api-version:v2.0

Esse cabeçalho facebook-api-version permite que você determine se as chamadas de API estão sendo retornadas pela versão esperada.

Informações de depuração para relato de erros

Ao relatar um erro na Graph API, incluímos cabeçalhos de solicitação adicionais. Eles são enviados com o relatório para facilitar a identificação e a reprodução do problema. Os cabeçalhos da solicitação são X-FB-Debug, x-fb-rev e X-FB-Trace-ID.