カスタムOTP送信
もしEngageLabプラットフォームを使用せずに自分で認証コードを生成したい場合は、このAPIを呼び出すことができます。
このAPIは事前に生成された認証コードを送信するために特化しており、自身でコードを生成することはありません。認証コードを送信した後、検証のために認証APIを呼び出す必要はありません。
EngageLabプラットフォームで認証コードを生成したい場合は、EngageLab OTP Code Delivery APIを呼び出してください。
エンドポイント
POST https://otp.api.engagelab.cc/v1/codes
認証
検証には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/codes HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
POST /v1/codes HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
このコードブロックはフローティングウィンドウ内に表示されます
リクエストボディ
{
"to": "+8618701235678",
"code":"398210",
"template":{
"id":"test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
{
"to": "+8618701235678",
"code":"398210",
"template":{
"id":"test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
このコードブロックはフローティングウィンドウ内に表示されます
リクエストパラメータ
リクエストオブジェクトはJSON形式で表現されるため、リクエストヘッダーにはContent-Type: application/jsonを含める必要があります。
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
to | String | 必須 | 宛先、電話番号またはメールアドレス。例:+8613800138000, support@engagelab.com |
code | String | 必須 | 送信するカスタム認証コード |
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のようなプリセットフィールドについて、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にフォールバックするように設定されている場合、APIレスポンスは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フィールドのエラー説明を参照してください |