OTP配信

OTP配信 API は、EngageLab プラットフォームを通じて認証コードを生成し、テンプレートで指定されたチャネル戦略に従って配信します。

EngageLab プラットフォームを使用せずに認証コードを自分で生成したい場合は、EngageLab OTP Custom Verification Code Delivery API を呼び出すことができます。

Endpoint

POST https://otp.api.engagelab.cc/v1/messages

認証

HTTP Basic Authentication を使用し、HTTP ヘッダーに Authorization を追加します。

Authorization: Basic ${base64_auth_string}
              
              Authorization: Basic ${base64_auth_string}

            
このコードブロックはフローティングウィンドウ内に表示されます

base64_auth_string の生成アルゴリズムは次のとおりです: base64(dev_key:dev_secret)

リクエスト例

リクエストヘッダー

POST /v1/messages HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0

            
このコードブロックはフローティングウィンドウ内に表示されます

リクエストボディ

{ "to": "+6591234567", "template": { "id": "test-template-1", "language": "default", "params": { "key1": "value1", "key2": "value2" } } }
              
              {
  "to": "+6591234567",
  "template": {
    "id": "test-template-1",
    "language": "default",
    "params": {
      "key1": "value1",
      "key2": "value2"
    }
  }
}

            
このコードブロックはフローティングウィンドウ内に表示されます

リクエストパラメーター

リクエストオブジェクトは JSON 形式で表現されるため、リクエストヘッダーには Content-Type: application/json を含める必要があります。

Parameter Type Required Description
to String 必須 送信先:電話番号またはメールアドレス。例:+6598765432 または support@engagelab.com
template JSON Object 必須 テンプレート情報。ネストされたパラメーターは以下を参照してください。
|_ id String 必須 テンプレート ID
|_ language String 任意 テンプレート言語。以下の言語に対応しています。
default: デフォルト言語
zh_CN: 中国語(簡体字)
zh_HK: 中国語(繁体字)
en: 英語
ja: 日本語
th: タイ語
es: スペイン語
指定しない場合、デフォルト値は default(デフォルト言語)です。
|_ params JSON Object 任意 カスタムテンプレート変数キーに対応する値です。テンプレート作成時にカスタム変数を定義した場合は、ここで値を設定します。指定しない場合、変数キーは {{var}} のようにそのまま配信されます。

params に関する注意事項

  1. テンプレート内のプリセットフィールド(例:from_id)について、param_vars フィールドの値が指定されていない場合、メッセージ配信時にはテンプレートのプリセット from_id が使用されます。
  2. param_vars フィールドの値が指定されている場合(例:param_vars:{"from_id":"12345"})、メッセージ配信時にテンプレートの from_id12345 に置き換えられます。
  3. 同時に、テンプレート作成時にテンプレート内容内で作成されたカスタム変数フィールドも param_vars を通じて割り当てられます。たとえば、テンプレート内容が Hi {{name}}, your verify code is {{code}} の場合、割り当てパラメーター param_vars:{"name":"Bob"} が必要です。

レスポンスパラメーター

成功レスポンス

Field Type Required Description
message_id String 必須 メッセージ ID。メッセージを一意に識別します
send_channel String 必須 現在の配信チャネルを示します。指定可能な値は whatsappsmsemailvoice です。
{ "message_id": "1725407449772531712", "send_channel": "sms" }
              
              {
  "message_id": "1725407449772531712",
  "send_channel": "sms"
}

            
このコードブロックはフローティングウィンドウ内に表示されます

返される send_channel の値は、ユーザーにメッセージを最終的に配信するために使用されたチャネルを表すものではない点に注意してください。これは、現在使用中のチャネルのみを示します。たとえば、テンプレート戦略が WhatsApp チャネルでの配信に失敗した場合に SMS チャネルで自動的に再試行するよう設定されている場合、API レスポンスでは whatsapp が返されます。その後、一定時間が経過して配信失敗が検出されると、システムは SMS チャネルを通じてメッセージを送信します。

失敗レスポンス

HTTP ステータスコードは 4xx または 5xx で、レスポンスボディには以下のフィールドが含まれます。

Field Type Required Description
code int 必須 エラーコード。詳細は Error Codes を参照してください
message String 必須 エラーの詳細
{ "code": 5001, "message": "sms send fail" }
              
              {
  "code": 5001,
  "message": "sms send fail"
}

            
このコードブロックはフローティングウィンドウ内に表示されます

Error Codes

Error Code HTTP Code Description
1000 500 内部エラー
2001 401 認証に失敗しました。正しいトークンが提供されていません
2002 401 認証に失敗しました。トークンの有効期限が切れているか、無効化されています
2004 403 この API を呼び出す権限がありません
3001 400 リクエストパラメーターの形式が無効です。JSON コンテンツが必要なパラメーター形式に一致しているか確認してください
3002 400 リクエストパラメーターが無効です。リクエストパラメーターが要件を満たしているか確認してください
3003 400 リクエストパラメーターが無効です。関連する業務検証に失敗しました。詳細は message フィールドのエラー説明を参照してください
3004 400 頻度制限を超えています。同じテンプレートおよび同じ対象ユーザーに対して、認証コードの有効期間内は再度配信できません
4001 400 関連リソースが存在しません。たとえば、テンプレートメッセージ送信時に存在しないテンプレートが使用されています
5001 400 送信に失敗しました(一般/その他)
5011 400 電話番号の形式が無効です
5012 400 宛先に到達できません
5013 400 番号がブラックリストに追加されています
5014 400 コンテンツが仕様に準拠していません
5015 400 メッセージがブロック/拒否されました
5016 400 内部送信エラー
5017 400 中国本土への送信権限がありません
5018 400 電話の問題(電源オフ/回線停止)
5019 400 ユーザーは配信停止しています
5020 400 番号が未登録、または無効な番号です
Icon Solid Transparent White Qiyu
お問い合わせ