Zum Hauptinhalt springen

Typische Antwortstruktur

Erfolgreiche Antworten werden durch einen HTTP-Statuscode aus der 200er‑Serie und eine JSON‑basierte Nutzlast gekennzeichnet, die die angeforderten, erstellten, geänderten oder gelöschten Objekte enthält, zusammen mit der Darstellung, wie der Server Ihre Anfrage interpretiert hat. Bei einer erfolgreichen Anfrage erhalten Sie in der Antwort einen request-Knoten, der Ihre Anfrage widerspiegelt. Beispiel: GET accounts/abcdefg/campaigns?with_deleted=true
{
  /* die Daten Ihrer Antwort... */,
  "request": {
    "params": {
      "account_id": "abcdefg",
      "with_deleted": "true"
    }
  }
}
Das Feld data in JSON-Antworten enthält die spezifischen Objekte, die der verwendeten Ressource zugeordnet sind. Der data-Knoten hat das Format eines JSON-Arrays, wenn die Antwort ein oder mehrere Ergebnisse enthalten kann. Er wird als JSON hash zurückgegeben, wenn in der Antwort nur ein Ergebnis möglich ist. In einigen seltenen Fällen kann eine Antwort, die typischerweise eine Sammlung enthalten würde, stattdessen eine Hashmap enthalten. Gehen Sie in diesem Fall davon aus, dass die einzelne Hashmap ein Objekt desselben Typs ist, wie im Feld type angegeben.

Struktur von Fehlerantworten

Fehlerantworten werden mit einem HTTP-Code außerhalb der 200er-Reihe ausgeliefert. In der Regel ist eine JSON-Antwort enthalten, einige Fehler liefern jedoch andere Arten von Antwortkörpern. In Fällen, in denen sich die Antwortstruktur nicht parsen lässt, sollte die Kernbedeutung des HTTP-Codes Vorrang haben. Gelegentlich kann beispielsweise ein HTTP 404 zusammen mit einer HTML-Antwort auftreten. In diesem Fall ist es sicher anzunehmen, dass der Inhalt nicht gefunden werden kann (HTTP 404 bedeutet „Not Found“). Typische Fehlerantworten folgen einer ähnlichen Struktur wie erfolgreiche Antworten. Die Art des Fehlers wird in einem errors-Knoten der Antwort mitgeteilt. Der Knoten errors/code gibt einen in CAPS_CASE geschriebenen, konstanten Fehlercode an, den Sie programmatisch auswerten können, um Entscheidungen zur Behebung zu treffen. Der Knoten errors/message enthält eine (in der Regel) für Menschen lesbare Beschreibung des Fehlers auf Englisch. Zusätzliche fields können angehängt werden, um feinere Details zum Fehler anzugeben.
{
  "errors": [
    {
      "parameter": "start_time",
      "details": "ungültiges Datum",
      "code": "INVALID_PARAMETER",
      "value": "",
      "message": "Zeitwert erwartet, „" für start_time erhalten"
    }
  ],
  "request": {
    "params": {
      "account_id": "hkk5"
    }
  }
}
Im obigen Beispiel wurde eine Anfrage an ein Analytics-endpoint mit einem ungültigen Wert für den Parameter start_time gestellt. Der errors/code für Anfragen mit ungültigen Parametern lautet INVALID_PARAMETER.
HTTP-CodeFehlercode
403ACCOUNT_LOCKED_OUT
404ACCOUNT_MEDIA_NOT_FOUND
403ACCOUNT_NOT_FOUND
403ACTION_NOT_ALLOWED
404APP_EVENT_PROVIDER_CONFIGURATION_NOT_FOUND
404APP_EVENT_TAG_NOT_FOUND
404BEHAVIOR_OR_BEHAVIOR_EXPANDED_NOT_FOUND
404CAMPAIGN_NOT_FOUND
408CANCELLED_REQUEST
404CARD_NOT_FOUND
403CURRENT_USER_SUSPENDED
400DUPLICATE_TWEET
400EXCLUSIVE_PARAMETERS
400FEATURE_NOT_AVAILABLE
403FUNDING_INSTRUMENT_ACCESS_NOT_ALLOWED
403FUNDING_INSTRUMENT_EXCEEDS_AVAILABLE_CREDIT_LIMIT
404FUNDING_INSTRUMENT_NOT_FOUND
403GENERIC_TWEET_ERROR
400ILLEGAL_CHARACTERS
400INCLUSIVE_PARAMETERS
500INTERNAL_ERROR
404INVALID_APP_ID
404INVALID_APP_STORE
400INVALID_DENOMINATION
400INVALID_FUNDING_INSTRUMENT
404INVALID_IAB_CATEGORY
404INVALID_ID_ILLEGAL_CHARACTERS
400INVALID_IMAGE
400INVALID_MEDIA
400INVALID_MEDIA_ID
400INVALID_PARAMETER
400INVALID_PLACEMENT_TYPE
400INVALID_TAILORED_AUDIENCE_TYPE
400INVALID_TARGETING_TYPE
400INVALID_TIME_WINDOW
400INVALID_TV_SHOW_LOCATIONS
400INVALID_TWEET
400INVALID_USER
400INVALID_USER_ID
423LOCK_ACQUISITION_TIMEOUT
404LINE_ITEM_APP_NOT_FOUND
404LINE_ITEM_NOT_FOUND
404MACT_APP_NOT_FOUND
403MALWARE_STATUS
404MEDIA_CREATIVE_NOT_FOUND
404MEDIA_NOT_FOUND
405METHOD_NOT_ALLOWED
400MISSING_PARAMETER
404NO_PROVIDER_AVAILABLE_FOR_THIS_CLIENT_APPLICATION
404NOT_FOUND
404PROMOTABLE_USER_NOT_FOUND
404PROMOTED_ACCOUNT_NOT_FOUND
404PROMOTED_TWEET_NOT_FOUND
403READONLY_CLIENT_APPLICATION
400REQUEST_TOO_COMPLEX
404ROUTE_NOT_FOUND
503SERVICE_UNAVAILABLE
503OVER_CAPACITY
400SPEND_EXCEEDS_BUDGET
404TAILORED_AUDIENCE_CHANGE_FILE_NOT_FOUND
404TAILORED_AUDIENCE_NOT_FOUND
404TAILORED_AUDIENCE_OR_TAILORED_AUDIENCE_EXPANDED_NOT_FOUND
404TARGETING_CRITERION_NOT_FOUND
400TOO_MANY_CAMPAIGNS
400TOO_MANY_LINE_ITEMS
429TOO_MANY_REQUESTS
400TV_SHOW_OUTSIDE_MARKET
400TWEET_CANNOT_BE_BLANK
403TWEET_IS_SPAM
404TWEET_NOT_FOUND
429TWEET_RATE_LIMIT_EXCEEDED
401UNAUTHORIZED_ACCESS
403UNAUTHORIZED_CLIENT_APPLICATION
400UNKNOWN_CARD_TYPE
400UNKNOWN_CRITERIA_TYPE
403USER_NOT_FOUND
404WEB_EVENT_TAG_NOT_FOUND
I