SMS のトラブルシューティング
SMS を送信すると、SMS 用 API はメッセージごとに message オブジェクトの配列を含む次のような JSON 応答を返します。
{
"message-count": "1",
"messages": [
{
"to": "447700900000",
"message-id": "0C000000217B7F02",
"status": "0",
"remaining-balance": "15.53590000",
"message-price": "0.03330000",
"network": "23410"
}
]
}
フィールド status は、メッセージが送信用にキューに入れられたかどうかを示します。ステータス「0」は成功を示し「0」以外の値は何らかのエラーを示します。
注: API 応答の status が「0」の場合は、Nexmo がメッセージを配信したことを示しません。ほかに考えられるエラー要因を参照してください。
SMS 用 API のエラーコード
SMS 用 API が「0」以外の status 値を返す場合は、次の表でエラーの要因を突き止めてください。
status | 意味 | 説明 |
|---|---|---|
| 0 | 成功 | メッセージは配信用に受け付けられました。 |
| 1 | スロットル | アカウント制限より速く SMS を送信しています (「発信 SMS のスループット制限について」を参照)。 |
| 2 | パラメーター不足 | 次の必須パラメーターのいずれかがリクエストに含まれていません: from、to、api_key、api_secret、text。 |
| 3 | 無効なパラメーター | 1 つ以上のパラメーターの値が無効です。 |
| 4 | 無効な資格情報 | API キーまたはシークレットが違う、無効、または無効化されています。 |
| 5 | 内部エラー | このメッセージの処理中にプラットフォームでエラーが発生しました。 |
| 6 | 無効なメッセージ | 認識不能の番号プリフィックスなどが原因で、このメッセージをプラットフォームで処理できませんでした。 |
| 7 | 番号拒否 | メッセージの送信を試みている番号はブラックリストに掲載されており、受信が禁止されています。 |
| 8 | 禁止のパートナーアカウント | Nexmo アカウントが一時停止されています。api.${CUSTOMER_SUPPORT_EMAIL} にお問い合わせください。 |
| 9 | パートナー割当量違反 | メッセージの送信に使えるクレジットが不足しています。クレジットを追加してから再試行してください。 |
| 10 | バインド数超過 | プラットフォームへの同時接続数がアカウントへの割当量を超えています。 |
| 11 | アカウントで HTTP が無効 | このアカウントは SMS 用 API 向けにプロビジョンされていません。代わりに SMPP を使用してください。 |
| 12 | メッセージの長さ制限を超過 | メッセージの長さが上限を超えています。 |
| 14 | 無効な署名 | 提示された署名を検証できませんでした。 |
| 15 | 無効な送信者アドレス | fromフィールドで未承認の送信者 ID が使用されています。このエラーは Nexmo の長い仮想番号または短縮コードが必要な北米でよく発生します。 |
| 22 | 無効なネットワークコード | ネットワークコードが認識不能であるか、送信先アドレスの国と一致しません。 |
| 23 | 無効なコールバック用 URL | コールバック用 URL が長すぎるか不正な文字が含まれています。 |
| 29 | ホワイトリストに未掲載の送信先 | Nexmo アカウントがまだデモモードです。デモモード中は送信先のホワイトリストに送信先番号を追加する必要があります。この制限を取り除くにはアカウントをアップグレードしてください。 |
| 32 | 署名と API シークレットの使用不可 | 署名リクエストでも api_secretを表示することはできません。 |
| 33 | 番号無効化 | メッセージの送信先番号が無効にされたため、受信されない可能性があります。 |
ほかに考えられるエラー要因
status の値が「0」である場合てもメッセージが届いていない場合は、配信プロセスで問題が起きたことになります。本来の受信者がメッセージを受領したかどうかを把握するため、通信会社から受領確認が必要です。