OTP 送信
このインターフェースは、EngageLab プラットフォームで検証コードを生成し、テンプレートで指定されたチャネル戦略に従って送信するために使用されます。
EngageLab プラットフォームに検証コードを生成させるのではなく、ご自身で検証コードを生成したい場合は、EngageLab OTP のカスタム OTP 送信 インターフェースを呼び出すことができます。
リクエスト URL
POST https://otp.api.engagelab.cc/v1/messages
認証
API 認証の方法については 認証 を参照してください。
リクエスト例
リクエストヘッダー
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 を含める必要があります。
| パラメータ | 型 | 必須/任意 | 説明 |
|---|---|---|---|
| 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 に関する注意
from_idなどテンプレートに既定されたフィールドについては、paramsフィールドの値を渡さない場合、メッセージ送信時にテンプレートの既定のfrom_idが使用されます;params:{"from_id":"12345"}のようにparamsフィールドの値を渡した場合、メッセージ送信時にテンプレートのfrom_idが 12345 に置き換えられます;- また、テンプレート作成時のテンプレート内容にあるカスタム変数フィールドも
paramsで値を割り当てます。例えばテンプレート内容がHi {{name}}, your verify code is {{code}}の場合、params:{"name":"Bob"}のようにパラメータを割り当てる必要があります。 - Email チャネルの特殊変数: Email チャネルでは、
paramsを通じてメール件名(subject)、送信者名(from_name)、送信者メールアドレス(from_mail)などを動的に上書きできます。詳細な高度な使い方は テンプレートの作成 - Email テンプレート変数の高度な使い方 を参照してください。
レスポンスパラメータ
成功レスポンス
| フィールド | 型 | 必須/任意 | 説明 |
|---|---|---|---|
| message_id | String | 必須 | メッセージ ID。メッセージを一意に識別する |
| send_channel | String | 必須 | 現在の送信チャネルを示す。値は whatsapp/sms/email/voice |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
このコードブロックはフローティングウィンドウ内に表示されます
なお、返却される send_channel の値は、最終的にユーザーに配信されるチャネルを表すものではなく、この段階で使用されたチャネルを表すにすぎません。例えば、テンプレートで設定された戦略が WhatsApp チャネルでの配信失敗時に自動的に SMS チャネルへフォールバックする場合、インターフェースは whatsapp の値を返します。一定時間後に配信失敗を検知すると、システムは SMS チャネルを使用して送信します。
失敗レスポンス
HTTP ステータスコードは 4xx または 5xx で、レスポンスボディには次のフィールドが含まれます。
| フィールド | 型 | 必須/任意 | 説明 |
|---|---|---|---|
| code | int | 必須 | エラーコード。詳細はエラーコードの説明を参照 |
| message | String | 必須 | エラーの詳細 |
{
"code": 5001,
"message": "sms send fail"
}
{
"code": 5001,
"message": "sms send fail"
}
このコードブロックはフローティングウィンドウ内に表示されます
エラーコード
| エラーコード | HTTP コード | 説明 |
|---|---|---|
| 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 | 未登録の番号/空番号 |










