首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 版小黃雞 (Simsimi) 聊天機器人接口調用示例

     編輯:PHP 綜合知識

實現原理

  1. 首次請求 https://www.simsimi.com/ 獲取 Session Cookie。
  2. 攜帶 Cookie 及 Referer 請求 API https://www.simsimi.com/func/req?lc=ch&msg=內容&ft=0.0。
  3. 解析 JSON 回復,提取 response 字段。

完整封裝函數

<?php
function simsimi($keyword) {
    $keyword = urlencode(urlencode($keyword)); // 雙重編碼

    // 1. 獲取 Cookie
    $ch = curl_init('https://www.simsimi.com/');
    curl_setopt_array($ch, [
        CURLOPT_HEADER => 1,
        CURLOPT_RETURNTRANSFER => 1,
    ]);
    $content = curl_exec($ch);
    list($header) = explode("\r\n\r\n", $content, 2);
    preg_match('/set-cookie:([^;]+)/i', $header, $m);
    $cookie = $m[1] ?? '';
    curl_close($ch);

    // 2. 請求回復
    $url = "https://www.simsimi.com/func/req?lc=ch&msg=$keyword&ft=0.0";
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_REFERER => 'https://www.simsimi.com/talk.htm?lc=ch',
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_COOKIE => $cookie,
    ]);
    $resp = json_decode(curl_exec($ch), true);
    curl_close($ch);

    return ($resp['result'] ?? '') === '100' ? $resp['response'] : '我還不會回答這個問題...';
}

// 使用
echo simsimi('你好');
?>

注意事項

  • 官方 API 可能變更、限流或需登錄,長期穩定建議申請官方開發者 Key 或使用其他成熟 NLP 服務(如圖靈、百度 UNIT、OpenAI)。
  • 雙重 urlencode 針對特殊字符傳輸,視實際 API 要求調整。
  • 請遵守 Simsimi 服務條款,勿用於商業濫發。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved