Yesing Forum » Cami 線上智慧客服系統 » 使用說明文件 » 機器人API串接說明
訪客輸入的訊息觸發有設定API功能的機器人知識時,機器人將以HTTP POST方式,傳送以下參數至所設定的API URI

talk_rid目前對話的ID
knowledge_summary所觸發的知識主旨
user_input訪客輸入的訊息
step機器人與API連結目前執行的階段 (剛觸發時此值必為1)
user_ip 訪客IP
timestamp訪客輸入訊息的時間(UNIX timestamp)
verify_token驗證碼(以sha1格式將api key、talk_rid、knowledge_summary、user_ip、timestamp 編碼)

API端所需回傳參數(JSON)

reply_message欲顯示給訪客的回覆訊息 (若API執行錯誤,請留空)
next_step下一步驟編號 (小於等於9999的數字,若API執行錯誤,請留空)
9999表示結束API連結
custom_status_code自定義錯誤碼,當機器人執行API URI發生錯誤時,機器人會將此值顯示於訊息中

※ 編碼所需的api key請系統主管理帳號登入管理中心首頁取得

※ Debug請參考機器人回應訊息(Status Code)
※ 利用custom_status_code可對API程式進行Debug

Status Code狀態說明

000API KEY錯誤
001
003
reply_message錯誤
002
004
005
next_step錯誤
 PHP範例 
<?php
if (! $_POST[’talk_id’]) {
    echo json_encode(array(
        ’custom_status_code’ => 1
    ));
    exit();
} elseif (! $_POST[’knowledge_summary’]) {
    echo json_encode(array(
        ’custom_status_code’ => 2
    ));
    exit();
} elseif ($_POST[’user_input’] == ’’) {
    echo json_encode(array(
        ’custom_status_code’ => 3
    ));
    exit();
} elseif (! $_POST[’step’]) {
    echo json_encode(array(
        ’custom_status_code’ => 4
    ));
    exit();
} elseif (! $_POST[’user_ip’]) {
    echo json_encode(array(
        ’custom_status_code’ => 5
    ));
    exit();
} elseif (! $_POST[’timestamp’]) {
    echo json_encode(array(
        ’custom_status_code’ => 6
    ));
    exit();
} elseif (! $_POST[’verify_token’]) {
    echo json_encode(array(
        ’custom_status_code’ => 7
    ));
    exit();
}

$api_key = ’請填入 API KEY’;
$verify_token = sha1($api_key . $_POST[’talk_id’] . $_POST[’knowledge_summary’] . $_POST[’user_ip’] . $_POST[’timestamp’]);

if ($verify_token != $_POST[’verify_token’]) {
    echo json_encode(array(
        ’custom_status_code’ => 8
    ));
    exit();
}


if ($_POST[’step’] == 1) {
    $success = array(
        ’reply_message’ => ’執行 Action A 請輸入 A,Action B 請輸入 B’,
        ’next_step’ => ’2’
    );
} elseif ($_POST[’step’] == 2) {
    if ($_POST[’user_input’] == ’A’) {
        $success = array(
            ’reply_message’ => ’選擇了 Action A’,
            ’next_step’ => ’9999’
        );
    } elseif ($_POST[’user_input’] == ’B’) {
        $success = array(
            ’reply_message’ => ’選擇了 Action B’,
            ’next_step’ => ’9999’
        );
    } else {
        $success = array(
            ’reply_message’ => ’輸入錯誤,請重新輸入’,
            ’next_step’ => ’2’
        );
    }
}

if (! isset($success)) {
    echo json_encode(array(
        ’custom_status_code’ => 9
    ));
}

echo json_encode($success);