OTP送信
このインターフェースは、EngageLabプラットフォームによって認証コードを生成し、テンプレートで指定されたチャネル戦略に従って配信するために使用されます。
EngageLabプラットフォームを使用せずに認証コードを自分で生成したい場合は、EngageLab OTPカスタム認証コード配信インターフェースを呼び出すことができます。
エンドポイント
POST https://otp.api.engagelab.cc/v1/messages
認証
HTTP基本認証を使用します。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": "+8618701235678",
"template":{
"id":"test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
{
"to": "+8618701235678",
"template":{
"id":"test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
このコードブロックはフローティングウィンドウ内に表示されます
リクエストパラメータ
リクエストオブジェクトはJSON形式で表現されるため、リクエストヘッダーにはContent-Type: application/jsonを含める必要があります。
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
to | String | 必須 | 送信先の受信者、電話番号またはメールアドレス、例:+8613800138000, support@engagelab.com |
template | JSONオブジェクト | 必須 | テンプレート情報、以下に二次パラメータを記載 |
|_ id | String | 必須 | テンプレートID |
|_ language | String | 任意 | テンプレートの言語、以下の言語をサポート: default デフォルト言語 zh_CN 簡体字中国語 zh_HK 繁体字中国語 en 英語 ja 日本語 th タイ語 es スペイン語 指定がない場合はデフォルト言語(default)が使用されます |
|_ params | JSONオブジェクト | 任意 | カスタムテンプレート変数のキーと値 テンプレート作成時にカスタム変数を設定している場合は、ここで値を指定してください。指定がない場合は、変数キーがそのまま送信されます(例:{{var}}) |
params
の説明
- テンプレート内のfrom_idなどのプリセットフィールドについて、param_varsフィールド値が指定されていない場合、メッセージ送信時にテンプレートのプリセットfrom_idが使用されます。
- param_varsフィールド値が指定されている場合(例:
param_vars:{"from_id":"12345"}
)、メッセージ送信時にテンプレートのfrom_idが12345に置き換えられます。 - 同様に、テンプレート内容内のカスタム変数フィールドについても、param_varsを介して値を割り当てることができます。例えば、テンプレート内容が
Hi {{name}}, your verify code is {{code}}
の場合、param_vars:{"name":"Bob"}
のようにパラメータを割り当てる必要があります。
レスポンスパラメータ
成功レスポンス
フィールド | タイプ | 必須 | 説明 |
---|---|---|---|
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 | 認証コードメッセージの配信に失敗、エラー詳細はmessageフィールドを参照 |