错误代码和响应

典型响应结构

成功响应通过 200 系列 HTTP 代码和基于 JSON 的有效负载(包含请求、创建、修改或删除的对象)以及服务器用于说明请求的表达式来进行指示。

如果你执行了成功的请求,则会收到 request 节点作为响应的一部分,来回显你的请求。

示例:GET accounts/abcdefg/campaigns?with_deleted=true


{
  /* the data of your response... */,
  "request": {
    "params": {
      "account_id": "abcdefg",
      "with_deleted": "true"
    }
  }
}

JSON 响应中的 data 字段会包含与利用的资源关联的特定对象。响应可能包含一个或多个结果时,data 节点的格式将为 JSON 数组。响应中仅可能包含一个结果时,则将返回为 JSON 哈希。在极为少见的情况下,你可能看到通常包含集合的响应却包含哈希映射。在这种情况下,可假设这个哈希映射是 type 字段中指定的同类型对象。

错误响应结构

错误响应均以非 200 系列 HTTP 代码表示。通常会附上 JSON 响应,但是一些错误将以不同种类的正文响应。在响应结构无法解析的情况下,考虑优先采纳 HTTP 代码的核心含义。例如,你可能偶尔会看到 HTTP 404 伴随 HTML 响应出现。这种情况下,可以认为无法找到内容(HTTP 404 表示“找不到”)。

典型错误响应与成功响应有类似的结构。错误的性质将通过响应的 errors 节点进行传输。errors/code 节点将指示大写的常量错误代码,你可以编程方式使用该代码,从而做出解决决策。errors/message 节点(通常)会指示用户可读的英语错误说明。也可能附加其他字段,以指示错误更细粒度的详细信息。


{
  "errors": [
    {
      "parameter": "start_time",
      "details": "invalid date",
      "code": "INVALID_PARAMETER",
      "value": "",
      "message": "Expected time, got "" for start_time"
    }
  ],
  "request": {
    "params": {
      "account_id": "hkk5"
    }
  }
}

上述示例中,使用 start_time 参数的无效值对分析端点进行了请求。具有无效参数的请求的 errors/codeINVALID_PARAMETER

HTTP 代码 错误代码
403 ACCOUNT_LOCKED_OUT
404 ACCOUNT_MEDIA_NOT_FOUND
403 ACCOUNT_NOT_FOUND
403 ACTION_NOT_ALLOWED
404 APP_EVENT_PROVIDER_CONFIGURATION_NOT_FOUND
404 APP_EVENT_TAG_NOT_FOUND
404 BEHAVIOR_OR_BEHAVIOR_EXPANDED_NOT_FOUND
404 CAMPAIGN_NOT_FOUND
408 CANCELLED_REQUEST
404 CARD_NOT_FOUND
403 CURRENT_USER_SUSPENDED
400 DUPLICATE_TWEET
400 EXCLUSIVE_PARAMETERS
400 FEATURE_NOT_AVAILABLE
403 FUNDING_INSTRUMENT_ACCESS_NOT_ALLOWED
403 FUNDING_INSTRUMENT_EXCEEDS_AVAILABLE_CREDIT_LIMIT
404 FUNDING_INSTRUMENT_NOT_FOUND
403 GENERIC_TWEET_ERROR
400 ILLEGAL_CHARACTERS
400 INCLUSIVE_PARAMETERS
500 INTERNAL_ERROR
404 INVALID_APP_ID
404 INVALID_APP_STORE
400 INVALID_DENOMINATION
400 INVALID_FUNDING_INSTRUMENT
404 INVALID_IAB_CATEGORY
404 INVALID_ID_ILLEGAL_CHARACTERS
400 INVALID_IMAGE
400 INVALID_MEDIA
400 INVALID_MEDIA_ID
400 INVALID_PARAMETER
400 INVALID_PLACEMENT_TYPE
400 INVALID_TAILORED_AUDIENCE_TYPE
400 INVALID_TARGETING_TYPE
400 INVALID_TIME_WINDOW
400 INVALID_TV_SHOW_LOCATIONS
400 INVALID_TWEET
400 INVALID_USER
400 INVALID_USER_ID
423 LOCK_ACQUISITION_TIMEOUT
404 LINE_ITEM_APP_NOT_FOUND
404 LINE_ITEM_NOT_FOUND
404 MACT_APP_NOT_FOUND
403 MALWARE_STATUS
404 MEDIA_CREATIVE_NOT_FOUND
404 MEDIA_NOT_FOUND
405 METHOD_NOT_ALLOWED
400 MISSING_PARAMETER
404 NO_PROVIDER_AVAILABLE_FOR_THIS_CLIENT_APPLICATION
404 NOT_FOUND
404 PROMOTABLE_USER_NOT_FOUND
404 PROMOTED_ACCOUNT_NOT_FOUND
404 PROMOTED_TWEET_NOT_FOUND
403 READONLY_CLIENT_APPLICATION
400 REQUEST_TOO_COMPLEX
404 ROUTE_NOT_FOUND
503 SERVICE_UNAVAILABLE
503 OVER_CAPACITY
400 SPEND_EXCEEDS_BUDGET
404 TAILORED_AUDIENCE_CHANGE_FILE_NOT_FOUND
404 TAILORED_AUDIENCE_NOT_FOUND
404 TAILORED_AUDIENCE_OR_TAILORED_AUDIENCE_EXPANDED_NOT_FOUND
404 TARGETING_CRITERION_NOT_FOUND
400 TOO_MANY_CAMPAIGNS
400 TOO_MANY_LINE_ITEMS
429 TOO_MANY_REQUESTS
400 TV_SHOW_OUTSIDE_MARKET
400 TWEET_CANNOT_BE_BLANK
403 TWEET_IS_SPAM
404 TWEET_NOT_FOUND
429 TWEET_RATE_LIMIT_EXCEEDED
401 UNAUTHORIZED_ACCESS
403 UNAUTHORIZED_CLIENT_APPLICATION
400 UNKNOWN_CARD_TYPE
400 UNKNOWN_CRITERIA_TYPE
403 USER_NOT_FOUND
404 WEB_EVENT_TAG_NOT_FOUND

Was this document helpful?

感谢

谢谢你的反馈。我们真的很高兴能帮上忙!

Thank you for the feedback. How could we improve this document?

Thank you for the feedback. Your comments will help us improve our documents in the future.