APIのエラーと応答
この参考記事では、Braze APIの使用中に発生する可能性のあるさまざまなエラーとサーバー応答、およびそれらのトラブルシューティング方法について説明します。
サーバーの応答
POSTペイロードがサーバーで受理された場合、成功メッセージには以下の応答が返されます:
1
2
3
{
"message" : "success"
}
成功とは、RESTful APIのペイロードが正しく形成され、プッシュ通知やメール、その他のメッセージングサービスに渡されたことのみを意味します。メッセージが実際に配信されたことを意味するわけではありません。追加の要因によって配信が妨げられる可能性があるためです(例えば、デバイスがオフライン状態である場合、プッシュトークンがAppleのサーバーによって拒否される場合、あるいは不明なユーザーIDが提供された場合など)。
/users/identifyのようなメッセージを送信しないエンドポイントの場合、成功メッセージは単にBrazeが処理リクエストを受信したことを意味します。処理後にエイリアスに一致するものが存在しない場合、リクエストは停止されます。
メッセージの送信が成功したが、致命的ではないエラーが発生した場合、以下の応答が返されます:
1
2
3
{
"message" : "success", "errors" : [<minor error message>]
}
成功した場合、errors配列内のエラーの影響を受けなかったメッセージはすべて配信されます。メッセージに致命的なエラーがある場合、以下の応答を受け取ります:
1
2
3
{
"message" : <fatal error message>, "errors" : [<minor error message>]
}
追跡された送信IDに対する応答
分析は常にCampaignsで利用できます。さらに、Campaignがブロードキャストとして送信された場合、特定のCampaign送信インスタンスに対して分析が利用できます。特定のCampaign送信インスタンスに対してトラッキングが利用可能な場合、以下の応答を受け取ります:
1
2
3
{
"message": "success", "send_id" : "example_send_id"
}
指定された送信IDは、/send/data_seriesエンドポイントのパラメーターとして使用して、送信固有の分析を取得できます。
エラー
サーバー応答のステータスコード要素は3桁の数字であり、コードの最初の桁が応答のクラスを定義します。
- 2XXクラスのステータスコード(致命的ではない)は、リクエストが正常に受信され、理解され、受け入れられたことを示します。
- 4XXクラスのステータスコード(致命的)は、クライアントエラーを示します。4XXエラーコードの全リストと説明については、致命的エラーチャートを参照してください。
- 5XXクラスのステータスコード(致命的)は、サーバーエラーを示します。考えられる原因はいくつかあります。たとえば、アクセスしようとしているサーバーがリクエストを実行できない、サーバーがメンテナンス中でリクエストを実行できない、サーバーのトラフィックが高いレベルになっているなどです。このような場合、エクスポネンシャルバックオフでリクエストを再試行することを推奨します。インシデントまたは停止が発生した場合、Brazeはインシデント期間中に失敗したREST API呼び出しを再実行することはできません。インシデント期間中に失敗した呼び出しはすべて再試行する必要があります。
- 502エラーは、送信先サーバーに到達する前に発生した失敗です。
- 503エラーは、リクエストが送信先サーバーに到達したが、十分な容量がない、ネットワークに問題がある、または同様の理由でリクエストを完了できないことを意味します。
- 504エラーは、サーバーが上流の別のサーバーから応答を受信しなかったことを示します。
致命的なエラー
リクエストが致命的なエラーに遭遇した場合、以下のステータスコードと関連するエラーメッセージが返されます。
以下のエラーコードはすべて、メッセージが送信されないことを示しています。
| エラーコード | 説明 |
|---|---|
5XX Internal Server Error |
エクスポネンシャルバックオフでリクエストを再試行してください。 |
400 Bad Request |
構文が正しくありません。 |
400 No Recipients |
リクエストにexternal IDやSegment ID、プッシュトークンがありません。 |
400 Invalid Campaign ID |
入力されたCampaign IDに該当するメッセージングAPI Campaignが見つかりませんでした。 |
400 Message Variant Unspecified |
Campaign IDは提供されていますが、メッセージバリエーションIDが提供されていません。 |
400 Invalid Message Variant |
有効なCampaign IDを入力しましたが、メッセージバリエーションIDがそのCampaignのどのメッセージとも一致しません。 |
400 Mismatched Message Type |
少なくとも1つのメッセージに、誤ったメッセージタイプのメッセージバリエーションを指定しました。 |
400 Invalid Extra Push Payload |
apple_pushまたはandroid_pushのいずれかにextraキーを指定しましたが、それはディクショナリではありません。 |
400 Max Input Length Exceeded |
/users/trackの場合、このエラーは単一のリクエストで許可されるオブジェクトの最大数を超えたことが原因です。制限はレート制限モデルによって異なります。ほとんどのお客様の場合、各リクエストはattributes、events、purchasesを合わせて最大75個のオブジェクトをサポートします。レガシーレート制限を使用しているお客様の場合、各配列は最大75個のオブジェクトを独立してサポートします。詳細については、POST: ユーザーの作成と更新を参照してください。 |
400 The max number of external_ids and aliases per request was exceeded |
50を超えるexternal IDを呼び出したことが原因です。 |
400 The max number of ids per request was exceeded |
50を超えるexternal IDを呼び出したことが原因です。 |
400 No message to send |
メッセージにペイロードが指定されていません。 |
400 Slideup Message Length Exceeded |
スライドアップメッセージが140文字を超えています。 |
400 Apple Push Length Exceeded |
JSONペイロードが1,912バイトを超えています。 |
400 Android Push Length Exceeded |
JSONペイロードが4,000バイトを超えています。 |
400 Bad Request |
send_atの日時を解析できません。 |
400 Bad Request |
リクエストでin_local_timeがtrueですが、会社のタイムゾーンでtimeが既に経過しています。 |
401 Unauthorized |
無効なAPIキーです。一般的な原因は以下の通りです: - Authorizationヘッダーが欠落しているか、形式が正しくありません。ヘッダーの値は Bearerの後にスペースとAPIキーを続ける必要があります:Authorization: Bearer YOUR-API-KEY。よくある間違いとして、Bearerの省略、Bearerの後のキーの省略、値を引用符で囲むことなどがあります。- RESTエンドポイントが間違っています。リクエストを間違ったインスタンスに送信しています。たとえば、アカウントがEUインスタンス( https://dashboard-01.braze.eu)にある場合、リクエストはhttps://rest.fra-01.braze.euに送信する必要があります。- 権限が不十分です。各APIキーは特定のワークスペースと権限のセットにスコープされています。ダッシュボードの設定 > APIキーでキーの権限を確認してください。 - APIキーが間違っています。APIキーはワークスペース固有です。あるワークスペースのキーを別のワークスペースのリクエスト認証に使用することはできません。 |
403 Forbidden |
料金プランが対応していない、またはアカウントが無効になっています。 |
403 Access Denied |
使用しているREST APIキーに十分な権限がありません。一般的な原因は以下の通りです:
|
404 Not Found |
無効なURLです。 |
415 Unsupported Media Type |
Content-Typeリクエストヘッダーが欠落しているか、正しくありません。設定ページで、Content-Typeにapplication/jsonの値を追加してください。 |
429 Rate Limited |
レート制限を超えています。 |