Debuggen von Anfragen

Graph API-Debug-Modus

Wenn der Debug-Modus aktiviert ist, enthält die Graph API-Antwort möglicherweise zusätzliche Felder mit Erläuterungen zu potenziellen Problemen mit der Anfrage.

Verwende den Abfrage-String-Parameter debug, um den Debug-Modus zu aktivieren. Beispiel:

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

Wurde die Berechtigung user_friends nicht erteilt, wird die folgende Antwort generiert:

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

Der Wert des Parameters debug kann auf „all“ oder einen Mindest-Schweregrad festgelegt werden, der dem type der Meldung entspricht:

Wert des Debug-Parameters Was wird zurückgegeben?

all

Alle verfügbaren Debug-Meldungen.

info

Debug-Meldungen vom Typ info und warning.

warning

Nur Debug-Meldungen vom Typ warning.

Gegebenenfalls verfügbare Debug-Informationen werden an ein JSON-Objekt unter dem Schlüssel __debug__ im Array messages zurückgegeben. Alle Elemente in diesem Array sind JSON-Objekte, die die folgenden Felder enthalten:

Feld Datentyp Beschreibung

message

String

Die Meldung.

type

String

Der Schweregrad der Meldung.

link

String

[Optional] Eine URL, die auf zugehörige Informationen verweist.

Du kannst den Debug-Modus auch mit Graph API Explorer verwenden.

Ermitteln der von API-Anfragen verwendete Version

Wenn du eine App entwickelst und Graph API-Anfragen ausführst, kann es hilfreich sein, die API-Version zu ermitteln, von der du eine Antwort erhältst. Wenn du beispielsweise Aufrufe ohne Angabe einer Version ausführst, ist dir die antwortende API-Version möglicherweise nicht bekannt.

Die Graph API liefert mit jeder Antwort einen Anfrage-Header mit der Bezeichnung facebook-api-version. Dieser gibt die genaue Version der API an, die die Antwort generiert hat. Beispielsweise erzeugt ein Graph API-Aufruf, mit dem eine Anfrage mit v2.0 generiert wird, den folgenden HTTP-Header:

facebook-api-version:v2.0

Mit diesem facebook-api-version-Header kannst du herausfinden, ob API-Aufrufe von der erwarteten Version zurückgegeben werden.

Debug-Info zum Melden von Fehlern

Beim Melden eines Fehlers in der Graph API nehmen wir einige zusätzliche Anfrage-Header auf, die mit deinem Fehlerbericht gesendet werden, damit wir dein Problem leichter lokalisieren und reproduzieren können. Diese Anfrage-Header sind X-FB-Debug, x-fb-rev und X-FB-Trace-ID.