ステート登録
以下のJSON形式のリストにてステートを受け取り、{unique_id}で指定したアプリケーションへステートの登録または更新を行います。
リクエスト
■ リクエストメソッド
POST
■ リクエストボディ
以下の値を持つJSONオブジェクトのリスト
パラメータ | 必須 | 説明 | |
---|---|---|---|
update_type | 更新タイプ 1:新規追加(既にステート名が存在する場合はスキップ) 3:置き換え(既にステート名が存在する場合は置き換え、存在しない場合は追加) 4:削除(ステート名を指定して削除する) *何も指定しない場合は"3:置き換え"となる |
||
state | ステート名 指定されない場合は自動でステート名が採番される |
||
in_condition_key | 当ステートに入る為の条件(キー) (指定なし/action/postback) |
||
in_condition_value | 当ステートに入る為の条件(値) (例:キーに"action"を指定した場合はアクション名を設定する) |
||
in_condition_state | 当ステートに入ることができるステート (sys_any_state/sys_no_state/[作成したステート名]) 何も指定しない場合はsys_any_stateが設定される |
||
out_state | 当ステート完了時、次に遷移するステート名 (sys_no_state/[作成したステート名]) 何も指定しない場合はsys_no_stateが設定される |
||
state_type | ◯ | ステートタイプ (form_filling(フォーム穴埋めタイプ)/api_call(API呼び出しタイプ)/mail_send(メール送信タイプ)/rtchat(有人チャット切替えタイプ)) |
|
responses | 当ステートに関連する応答文のリスト | ||
type | ◯ |
応答文のタイプ 【ステートタイプがフォーム穴埋めタイプの場合】 【ステートタイプがAPI呼び出しタイプの場合】 【ステートタイプがメール送信タイプの場合】 【ステートタイプが有人チャット切替えタイプの場合】 |
|
response_text | ◯ | 応答文 | |
replies | 応答文に返答用ボタンを表示する場合のボタン名のリスト |
以下の項目は"state_type"がform_fillingの場合のみ
項目 | 必須 | 説明 | ||
---|---|---|---|---|
is_confirm | フォーム完了時、確認メッセージを表示するかどうか (0(確認しない)/1(確認する)) 何も指定しない場合は、1が設定される |
|||
forms | 入力フォームのリスト | |||
form_name | ◯ | フォーム項目名 | ||
form_value | 当項目に設定するエンティティの名 (どのような値でも良い時は"sys_any"を設定) 何も指定しない場合は、sys_anyが設定される |
|||
form_value_condition | 当項目に設定するエンティティの条件 | |||
validations | 当項目の入力チェックのリスト | |||
validation_type | "regex"(正規表現)固定 | |||
validation_value | チェックする正規表現 | |||
responses | 入力フォームに関連する応答文のリスト | |||
type | 応答文のタイプ form:当項目を聞き出す為の応答文 formerror:入力内容にエラーがある場合の応答文 |
|||
response_text | 応答文 | |||
replies | 応答文に返答用ボタンを表示する場合のボタン名のリスト |
以下の項目は"state_type"がapi_callの場合のみ
項目 | 必須 | 説明 |
---|---|---|
url | ◯ | API呼び出しするURL |
method | API呼び出しするメソッド get/post 何も指定しない場合は、getが設定される |
|
content_type | API呼び出し時のCONTENT TYPE 何も指定しない場合は、application/jsonが設定される |
|
headers | API呼び出し時のリクエストヘッダ ("key1=val1;key2=val2;"の形式で作成) |
|
payload_type | API呼び出しに設定するパラメータのタイプ 1: Key/Valueパラメータ形式 2: JSON形式 3: Rawデータ形式 |
|
payload | API呼び出しに設定するパラメータ 【パラメータタイプが1もしくは3の場合】 'param_key1=param_val1¶m_key2=param_val2'の形式 【パラメータタイプが2の場合】 '{"param_key1":"param_val1","param_key2":"param_val2"}'のようなJSON形式 |
以下の項目は"state_type"がmail_sendの場合のみ
項目 | 必須 | 説明 |
---|---|---|
subject | メールタイトル | |
body | メール本文 | |
to | ◯ | 送信先アドレス |
cc | CCアドレス | |
bcc | BCCドレス |
■ リクエストボディの例
[
{
"update_type":"1", "state":"state1", "in_condition_key":"action","in_condition_value":"action1","state_type":"form_filling",
"responses":[
{"type":"in","response_text":"ステートに入りました"},
{"type":"out","response_text":"ステートを出ました","replies":["メニューに戻る"]},
{"type":"cancel","response_text":"ステートがキャンセルされました","replies":["メニューに戻る"]},
{"type":"unk","response_text":"理解できませんでした"},
{"type":"confirm","response_text":"この内容でよろしいでしょうか?","replies":["はい","いいえ"]},
{"type":"modify","response_text":"了解しました"}
],
"forms":[
{"form_name":"name","validations":[{"validation_type":"regex","validation_value":"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)"}],"responses":[{"type":"form","response_text":"名前を教えてください。"},{"type":"formerror","response_text":"入力内容に誤りがあります。"}]},
{"form_name":"product","form_value":"product","responses":[{"type":"form","response_text":"商品を選択してください。"}]}
]
},
{"update_type":"1", "state":"state2","state_type":"api_call","url":"http://google.com","method":"post","content_type":"application/json","headers":"key1=val1;key2=val2;","payload_type":"1","payload":"param_key1=param_val1¶m_key2=param_val2",
"responses":[
{"type":"in","response_text":"ステートに入りました"},
{"type":"error","response_text":"エラーがありました","replies":["メニューに戻る"]}
]
},
{"update_type":"1", "state":"state3","state_type":"mail_send","subject":"タイトル","body":"本文","to":"info@resola.ai",
"responses":[
{"type":"in","response_text":"ステートに入りました"}
]
},
{"update_type":"3", "state_type":"rtchat",
"responses":[
{"type":"in","response_text":"オペレータにおつなぎします"},
{"type":"cancel","response_text":"時間外です"}
]
},
{"update_type":"4", "state":"state5"}
]
レスポンス
項目 | 説明 |
---|---|
updated | 更新されたステートのリスト ["state2", "state3", "state4"] |
deleted | 削除されたステートのリスト ["state5"] |
skipped | スキップされたステートのリスト ["state1"] |