テンプレートAPIインターフェース
テンプレート作成
エンドポイント
POST https://otp.api.engagelab.cc/v1/template-configs
認証
HTTPヘッダーにAuthorizationを追加してHTTP Basic認証を使用します:
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
リクエストボディ
{
"template_id": "test-template-1", // カスタムテンプレートID、アプリケーション内で一意
"description": "Test Template 1", // テンプレートの説明
"send_channel_strategy": "whatsapp|sms", // テンプレート配信戦略、4種類をサポート:whatsapp/sms/voice/email。フォールバック戦略を示すには|を使用
"brand_name": "Brand Name", // ブランド名、テンプレートコンテンツ内で署名として使用される(例:特定の国/地域でSMSチャネルに必要)
"verify_code_config": { // 認証コード設定、テンプレートに認証コードタイプが含まれる場合に必要
"verify_code_type": 1, // 認証コードタイプ、範囲[1,7]
"verify_code_len": 6, // 認証コードの長さ、範囲[4,10]
"verify_code_ttl": 1 // 認証コードの有効期間、範囲[1,10]。注意:戦略にWhatsAppが含まれる場合、値は1, 5, 10のみ
},
"whatsapp_config": { // WhatsApp戦略設定、配信戦略にWhatsAppが含まれる場合に有効
"template_type": 1, // WhatsAppテンプレートタイプ、現在はデフォルトテンプレートのみサポート、固定値1
"template_default_config": { // WhatsAppデフォルトテンプレート設定、デフォルトテンプレートタイプに有効
"contain_security": false, // セキュリティリマインダーを含むかどうか
"contain_expire": false // 有効期限コンテンツを含むかどうか
}
},
"sms_config": { // SMS戦略設定、配信戦略にSMSが含まれる場合に有効
"template_type": 2, // SMSテンプレートタイプ、値:1-デフォルトテンプレート/2-カスタムテンプレート
"template_default_config": { // SMSデフォルトテンプレート設定、デフォルトテンプレートタイプに有効
"contain_security": false, // セキュリティリマインダーを含むかどうか
"contain_expire": false // 有効期限コンテンツを含むかどうか
},
"template_custom_config": { // SMSカスタムテンプレート設定、カスタムテンプレートタイプに有効
"custom_sub_type": "authentication", // カスタムテンプレートタイプ、値:authentication-認証コード/marketing-マーケティング/utility-通知
"custom_content": "xxx", // カスタムテンプレートコンテンツ。注意:認証タイプの場合、{{code}}変数を含む必要あり
"custom_country_codes": "HK,PH" // カスタムテンプレートの対象国/地域、テンプレート審査時の参考として使用。必要に応じて記入、未記入の場合配信に影響する可能性あり
}
},
"voice_config": { // 音声戦略設定、配信戦略に音声が含まれる場合に有効
"template_type": 1, // 音声テンプレートタイプ、現在はデフォルトテンプレートのみサポート、固定値1
"template_default_config": { // 音声デフォルトテンプレート設定、デフォルトテンプレートタイプに有効
"contain_security": false, // セキュリティリマインダーを含むかどうか
"contain_expire": false // 有効期限コンテンツを含むかどうか
}
},
"email_config": { // メール戦略設定、配信戦略にメールが含まれる場合に有効
"template_name": "Email Template Name", // メールテンプレート名
"template_custom_configs": [{ // メールカスタムテンプレート設定、これはオブジェクトの配列であり、主に言語で区別される
"language": "default", // 言語、defaultはデフォルト。配信時に言語パラメータに基づいてテンプレートコンテンツを一致させることができる
"pre_from_name": "test", // プリセット送信者名
"pre_from_mail": "test@test.com", // プリセット送信者メール
"pre_subject": "test", // プリセットメール件名
"template_content": "プリセットメールテンプレートコンテンツ、必須。{{self}}などのカスタム変数、認証コードは{{code}}", // メールコンテンツ、HTMLをサポート。変数は二重中括弧{{}}で囲む必要あり
"pre_param_map": { // メールコンテンツ内の変数のデフォルト値。配信時に変数値が指定されていない場合、これらのデフォルト値が変数を置き換える。キーと値のペアとして宣言され、値は文字列でなければならない
"self": "self変数のプリセット値"
}
}]
},
"pwa_config": { // PWA関連設定、オプション
"pwa_platform": "xx", // 使用するPWAプラットフォーム。具体的な値については技術サポートにお問い合わせください
"pwa_code": "xx" // 使用するPWAプラットフォーム内のコード
}
}
リクエストパラメータ
リクエストオブジェクトはJSON形式で表されるため、リクエストヘッダーにはContent-Type: application/jsonを含める必要があります。
パラメータ | 型 | オプション | 説明 |
---|---|---|---|
template_id | String | 必須 | カスタムテンプレートID、一意、128文字以内 |
description | String | オプション | テンプレートの説明、255文字以内 |
send_channel_strategy | String | 必須 | テンプレート戦略。単一チャネル値:whatsapp/sms/email/voice。複数チャネルの場合、 |
brand_name | String | オプション | ブランド署名、一部のテンプレートスタイルでブランド署名変数を置き換える。長さは2-10文字以内 |
verify_code_config | Object | 条件付き必須 | 認証コード設定、テンプレートに認証コードタイプが含まれる場合に必要 |
verify_code_config.verify_code_type | Integer | 必須 | 認証コードタイプ、範囲[1,7]。1-数字/2-小文字/4-大文字。組み合わせ可能(例:3は数字+小文字) |
verify_code_config.verify_code_len | Integer | 必須 | 認証コードの長さ、範囲[4,10] |
verify_code_config.verify_code_ttl | Integer | 必須 | 認証コードの有効期間(分)、範囲[1,10]。戦略にWhatsAppが含まれる場合、1, 5, 10のみ |
whatsapp_config | Object | 条件付き必須 | WhatsApp戦略設定、配信戦略にWhatsAppが含まれる場合に必要 |
whatsapp_config.template_type | Integer | 必須 | WhatsAppテンプレートタイプ、現在はデフォルトテンプレートのみサポート、固定値1 |
whatsapp_config.template_default_config | Object | 条件付き必須 | WhatsAppデフォルトテンプレート設定、デフォルトテンプレートタイプに必要 |
sms_config | Object | 条件付き必須 | SMS戦略設定、配信戦略にSMSが含まれる場合に必要 |
sms_config.template_type | Integer | 必須 | SMSテンプレートタイプ、1-デフォルトテンプレート/2-カスタムテンプレート |
sms_config.template_default_config | Object | 条件付き必須 | SMSデフォルトテンプレート設定、デフォルトテンプレートタイプに必要 |
sms_config.template_custom_config | Object | 条件付き必須 | SMSカスタムテンプレート設定、カスタムテンプレートタイプに必要 |
sms_config.template_custom_config.custom_sub_type | String | 必須 | カスタムテンプレートタイプ、authentication-認証コード/marketing-マーケティング/utility-通知 |
sms_config.template_custom_config.custom_content | String | 必須 | カスタムテンプレートコンテンツ。認証タイプの場合、{{code}}変数を含む必要あり |
sms_config.template_custom_config.custom_country_codes | String | オプション | 対象国/地域コード、カンマ区切り、テンプレート審査時の参考として使用 |
voice_config | Object | 条件付き必須 | 音声戦略設定、配信戦略に音声が含まれる場合に必要 |
voice_config.template_type | Integer | 必須 | 音声テンプレートタイプ、現在はデフォルトテンプレートのみサポート、固定値1 |
voice_config.template_default_config | Object | 条件付き必須 | 音声デフォルトテンプレート設定、デフォルトテンプレートタイプに必要 |
email_config | Object | 条件付き必須 | メール戦略設定、配信戦略にメールが含まれる場合に必要 |
email_config.template_name | String | 必須 | メールテンプレート名 |
email_config.template_custom_configs | Array | 条件付き必須 | メールカスタムテンプレート設定、カスタムテンプレートタイプに必要、マルチ言語設定をサポート |
email_config.template_custom_configs.language | String | 必須 | 言語、defaultはデフォルト。配信時に言語パラメータに基づいてテンプレートコンテンツを一致させることができる |
email_config.template_custom_configs.pre_from_name | String | オプション | プリセット送信者名 |
email_config.template_custom_configs.pre_from_mail | String | 必須 | プリセット送信者メール |
email_config.template_custom_configs.pre_subject | String | 必須 | プリセットメール件名 |
email_config.template_custom_configs.template_content | String | 必須 | メールコンテンツ、HTMLをサポート。変数は二重中括弧{{}}で囲む必要あり |
email_config.template_custom_configs.pre_param_map | Object | オプション | メールコンテンツ内の変数のデフォルト値。キーと値のペアとして宣言され、値は文字列でなければならない |
pwa_config | Object | オプション | PWA関連設定、オプション |
pwa_config.pwa_platform | String | オプション | 使用するPWAプラットフォーム。具体的な値については技術サポートにお問い合わせください |
pwa_config.pwa_code | String | オプション | 使用するPWAプラットフォーム内のコード |
レスポンスパラメータ
フィールド | 型 | オプション | 説明 |
---|---|---|---|
code | Integer | 必須 | エラーコード、0は成功、その他は失敗 |
message | String | 必須 | 検証コードを検証するためのメッセージ |
成功レスポンス
{
"code": 0,
"message": "success"
}
失敗レスポンス
{
"code": 3003,
"message": "チャネル設定が含まれていません"
}
エラーコード
エラーコード | HTTPコード | 説明 |
---|---|---|
1000 | 500 | 内部エラー |
2001 | 401 | 認証失敗、不正なトークンが提供されました |
2002 | 401 | 認証失敗、トークンが期限切れまたは無効化されました |
2004 | 403 | このAPIを呼び出す権限がありません |
3001 | 400 | 無効なリクエストパラメータ形式、JSON形式に準拠しているか確認してください |
3002 | 400 | 無効なリクエストパラメータ、要件を満たしているか確認してください |
3003 | 400 | ビジネスレベルのパラメータエラー、詳細はメッセージフィールドを確認してください |
テンプレート削除
エンドポイント
DELETE /v1/template-configs/{templateId}
認証
HTTPヘッダーにAuthorizationを追加してHTTP Basic認証を使用します:
Authorization: Basic ${base64_auth_string}
base64_auth_stringは次のように生成されます:base64(dev_key:dev_secret)
リクエスト例
リクエストヘッダー
DELETE /v1/template-configs/{templateId} HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
リクエストボディ
なし
リクエストパラメータ
URL内の{templateId}
は削除するテンプレートIDを表し、テンプレート作成時に呼び出し元が定義します。
レスポンスパラメータ
フィールド | 型 | オプション | 説明 |
---|---|---|---|
code | Integer | 必須 | エラーコード、0は成功、その他は失敗 |
message | String | 必須 | 検証コードを検証するためのメッセージ |
成功レスポンス
{
"code": 0,
"message": "success"
}
失敗レスポンス
{
"code": 4001,
"message": "設定が存在しません"
}
エラーコード
エラーコード | HTTPコード | 説明 |
---|---|---|
1000 | 500 | 内部エラー |
2001 | 401 | 認証失敗、不正なトークンが提供されました |
2002 | 401 | 認証失敗、トークンが期限切れまたは無効化されました |
2004 | 403 | このAPIを呼び出す権限がありません |
3001 | 400 | 無効なリクエストパラメータ形式、JSON形式に準拠しているか確認してください |
3002 | 400 | 無効なリクエストパラメータ、要件を満たしているか確認してください |
4001 | 400 | テンプレートが存在しません |
全テンプレートリストの取得
現在、このAPIはページネーションをサポートしておらず、すべてのテンプレートの簡易リストを返します。主に特定の内容を除外しています。詳細な内容が必要な場合は、詳細APIを使用してください。
エンドポイント
GET /v1/template-configs
認証
HTTP Basic Authenticationを使用します。HTTPヘッダーにAuthorizationヘッダーを追加してください:
Authorization: Basic ${base64_auth_string}
上記のbase64_auth_string
は、次のアルゴリズムを使用して生成されます: base64(dev_key:dev_secret)
リクエスト例
リクエストヘッダー
GET /v1/template-configs HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
リクエストボディ
なし
リクエストパラメータ
なし
成功レスポンス
[{
"template_id": "test-template-1", // カスタムテンプレートID。アプリケーション内で一意
"description": "Test Template 1", // テンプレートの説明
"send_channel_strategy": "whatsapp|sms", // テンプレートの配信戦略。whatsapp/sms/voice/emailをサポート。複合戦略は"|"文字でフォールバックを示す
"brand_name": "Brand Name", // ブランド名。一部の国/地域でテンプレート内容の署名として使用(例: SMSチャネルで必要)
"verify_code_config": { // 認証コードの設定。テンプレートに認証コードタイプが含まれる場合に返される
"verify_code_type": 1, // 認証コードタイプ。範囲[1,7]
"verify_code_len": 6, // 認証コードの長さ。範囲[4,10]
"verify_code_ttl": 1 // 認証コードの有効期間。範囲[1,10]。注: 戦略にwhatsappが含まれる場合、値は1, 5, 10のみ
},
"whatsapp_config": { // whatsapp戦略の設定。配信戦略にwhatsappが含まれる場合に返される
"template_type": 1 // whatsappテンプレートタイプ。現在はデフォルトテンプレートのみサポート。固定値1
},
"sms_config": { // SMS戦略の設定。配信戦略にSMSが含まれる場合に返される
"template_type": 2, // SMSテンプレートタイプ。値: 1-デフォルトテンプレート/2-カスタムテンプレート
"template_parts": 1 // SMSテンプレートの推定課金パーツ。テンプレートが長すぎる場合、具体的な価格 = 課金パーツ * 単価
},
"voice_config": { // 音声戦略の設定。配信戦略に音声が含まれる場合に返される
"template_type": 1 // 音声テンプレートタイプ。現在はデフォルトテンプレートのみサポート。固定値1
},
"email_config": { // メール戦略の設定。配信戦略にメールが含まれる場合に返される
"template_name": "Email Template Name" // メールテンプレート名
},
"pwa_config": { // PWA関連の設定。PWA設定が存在する場合に返される
"pwa_platform": "xx", // 使用されるPWAプラットフォーム
"pwa_code": "xx" // PWAプラットフォームで使用されるコード
},
"created_time": 1234567890, // テンプレートの作成時間。タイムスタンプ形式(秒単位)
"status": 1, // テンプレートのステータス。値: 1-審査中/2-承認済み/3-拒否
"audit_remark": "xx" // 審査コメント。審査が拒否された場合の理由を確認するために使用
},...] // 注: これはオブジェクトの配列です
失敗レスポンス
{
"code": 4001,
"message": "config not exist"
}
エラーコード
エラーコード | HTTPコード | 説明 |
---|---|---|
1000 | 500 | 内部エラー |
2001 | 401 | 認証失敗。トークンが正しくない |
2002 | 401 | 認証失敗。トークンが期限切れまたは無効 |
2004 | 403 | このAPIを呼び出す権限がない |
4001 | 400 | テンプレートが存在しない |
テンプレート詳細の取得
エンドポイント
GET /v1/template-configs/{templateId}
認証
HTTP Basic Authenticationを使用します。HTTPヘッダーにAuthorizationヘッダーを追加してください:
Authorization: Basic ${base64_auth_string}
上記のbase64_auth_string
は、次のアルゴリズムを使用して生成されます: base64(dev_key:dev_secret)
リクエスト例
リクエストヘッダー
GET /v1/template-configs/custom-template-id HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
リクエストボディ
なし
リクエストパラメータ
URLの{templateId}
は取得するテンプレートIDを表します。テンプレート作成時に呼び出し元が定義します。
成功レスポンス
{
"template_id": "test-template-1", // カスタムテンプレートID。アプリケーション内で一意
"description": "Test Template 1", // テンプレートの説明
"send_channel_strategy": "whatsapp|sms", // テンプレートの配信戦略。whatsapp/sms/voice/emailをサポート。複合戦略は"|"文字でフォールバックを示す
"brand_name": "Brand Name", // ブランド名。一部の国/地域でテンプレート内容の署名として使用(例: SMSチャネルで必要)
"verify_code_config": { // 認証コードの設定。テンプレートに認証コードタイプが含まれる場合に返される
"verify_code_type": 1, // 認証コードタイプ。範囲[1,7]
"verify_code_len": 6, // 認証コードの長さ。範囲[4,10]
"verify_code_ttl": 1 // 認証コードの有効期間。範囲[1,10]。注: 戦略にwhatsappが含まれる場合、値は1, 5, 10のみ
},
"whatsapp_config": { // whatsapp戦略の設定。配信戦略にwhatsappが含まれる場合に返される
"template_type": 1 // whatsappテンプレートタイプ。現在はデフォルトテンプレートのみサポート。固定値1
},
"sms_config": { // SMS戦略の設定。配信戦略にSMSが含まれる場合に返される
"template_type": 2, // SMSテンプレートタイプ。値: 1-デフォルトテンプレート/2-カスタムテンプレート
"template_parts": 1, // SMSテンプレートの推定課金パーツ。テンプレートが長すぎる場合、具体的な価格 = 課金パーツ * 単価
"template_custom_config": { // カスタムSMSテンプレート設定。SMSテンプレートタイプがカスタムの場合に有効
"custom_sub_type": "authentication", // カスタムテンプレートタイプ。値: authentication-認証コード/marketing-マーケティング/utility-通知
"custom_content": "xxx" // カスタムテンプレート内容。注: サブタイプがauthentication(認証コード)の場合、{{code}}変数を含む必要がある
}
},
"voice_config": { // 音声戦略の設定。配信戦略に音声が含まれる場合に返される
"template_type": 1 // 音声テンプレートタイプ。現在はデフォルトテンプレートのみサポート。固定値1
},
"email_config": { // メール戦略の設定。配信戦略にメールが含まれる場合に返される
"template_name": "Email Template Name", // メールテンプレート名
"template_custom_configs": [{ // カスタムメールテンプレート設定。メールテンプレートタイプがカスタムの場合に有効。注: これはオブジェクトの配列で、主に言語で区別される
"language": "default", // 言語。"default"はデフォルト。メッセージ送信時に、言語パラメータに基づいて異なるテンプレート内容をマッチング可能
"pre_from_name": "test", // 事前設定された送信者名
"pre_from_mail": "test@test.com", // 事前設定された送信者メール
"pre_subject": "test", // 事前設定されたメール件名
"template_content": "事前設定されたメールテンプレート内容。必須。{{self}}などのカスタム変数や認証コード{{code}}を含む", // メール内容。HTMLをサポート。変数は二重中括弧{{}}で囲む必要がある
"pre_param_map": { // メール内容内の変数のデフォルト値。送信時に変数値が指定されない場合、以下のデフォルト値が変数を置き換える。キーと値のペアとして宣言
"self": "self変数のデフォルト値です"
}
}]
},
"pwa_config": { // PWA関連の設定。PWA設定が存在する場合に返される
"pwa_platform": "xx", // 使用されるPWAプラットフォーム
"pwa_code": "xx" // PWAプラットフォームで使用されるコード
},
"created_time": 1234567890, // テンプレートの作成時間。タイムスタンプ形式(秒単位)
"status": 1, // テンプレートのステータス。値: 1-審査中/2-承認済み/3-拒否
"audit_remark": "xx" // 審査コメント。審査が拒否された場合の理由を確認するために使用
}
失敗レスポンス
{
"code": 4001,
"message": "config not exist"
}
エラーコード
エラーコード | HTTPコード | 説明 |
---|---|---|
1000 | 500 | 内部エラー |
2001 | 401 | 認証失敗。トークンが正しくない |
2002 | 401 | 認証失敗。トークンが期限切れまたは無効 |
2004 | 403 | このAPIを呼び出す権限がない |
4001 | 400 | テンプレートが存在しない |