如果 API 要求成功,API 會傳回 200 OK 狀態碼,以及回應主體中要求的資料。如果發生錯誤,API 會傳回 Google API 定義的其中一個標準錯誤代碼,並對應至 HTTP 狀態碼,以及包含錯誤資訊的回應主體。發生錯誤時,請檢查 JSON 回應主體中的 message 和 status 欄位,瞭解詳細資料,以便進行偵錯。
錯誤格式
如果要求導致錯誤,API 會傳回適當的 HTTP 狀態碼和 JSON 回應主體。錯誤回應包含 error 物件,結構如下:
{
"error": {
"code": 403,
"message": "User does not have sufficient permissions for this property.",
"status": "PERMISSION_DENIED"
}
}
error 物件包含下列欄位:
| 欄位 | 說明 |
|---|---|
| 程式碼 | HTTP 狀態碼,例如 400、401、403、429 或 500。 |
| 訊息 | 簡短說明錯誤。 |
| 狀態 | 標準錯誤代碼,例如 INVALID_ARGUMENT、UNAUTHENTICATED、PERMISSION_DENIED、RESOURCE_EXHAUSTED 或 INTERNAL。 |
常見錯誤
下表列出 API 傳回的常見錯誤。
| HTTP 狀態碼 | 標準程式碼 | 原因 | 說明 |
|---|---|---|---|
| 400 | INVALID_ARGUMENT |
要求無效 | 要求格式錯誤。這可能是因為缺少或無效的參數,例如日期範圍有誤或篩選器格式有誤。 |
| 401 | UNAUTHENTICATED |
憑證無效 | 要求中不含目標資源的有效驗證憑證。如果缺少 OAuth 2.0 存取權杖、權杖無效或已過期,就可能發生這種情況。請按照「使用 OAuth 2.0 進行驗證」一文中的操作說明,取得有效權杖。 |
| 403 | PERMISSION_DENIED |
權限不足 | 已驗證的使用者無法存取要求的 Google Analytics 資源。 |
| 429 | RESOURCE_EXHAUSTED |
超過配額 | 要求因達到 API 配額上限而遭拒。詳情請參閱「Data API 限制和配額」。您可能已超過每個專案或每個資源的限制。 |
| 500 | INTERNAL |
內部伺服器錯誤 | 發生未預期的伺服器錯誤。這通常是暫時性問題,建議以指數輪詢方式重試要求。為避免超出伺服器錯誤配額,請務必實作指數輪詢策略,並設定重試次數上限。 |
| 503 | UNAVAILABLE |
無法使用服務 | 服務暫時無法使用,這通常是暫時性問題,建議以指數輪詢方式重試要求。為避免超出伺服器錯誤配額,請務必實作指數輪詢策略,並設定重試次數上限。 |