这几天闲的突然到腾起公司微信了,于是在一个目录下安装了wordpress ,然后,准备倒腾公司微信公众平台,在WordPress里更新文章,可以回复文字查询,一个是用了小黄鸡在线聊天的API接口,一个是用了图灵机器人的在线聊天,图灵机器人需要注册账号,获取KEY后方可使用,免费的额度是每天调用5000次。
图灵机器人比小黄鸡有内容有比较好些,但是感觉内容空缺比较大,各有优点和缺点
小黄鸡的聊天API
我直接封装成函数,方便调用
配制方案
//小黄鸡智能机器人接口
function xiaohuangji( $keyword ){
if ( $keyword<>'' ){
$curlPost = 'para='.$keyword;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://www.xiaohuangji.com/ajax.php');
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
$return_str = curl_exec($curl);
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($return_str === false) {
return false;//连接失败
}
if ($http_code !== 200) {
return false;//连接失败
}
curl_close($curl);
if(md5($return_str)=='3f46a0d792a6a4104c11283d4768192d'){
//抱歉,小黄鸡还不能理解,求您教我,使用"问...答....."句式(不准带标点~)
return false;
}
return $return_str;
}return false;
}
食用方法
食用方法就很简单
xiaohuangji('keyword');
直接传入参数就可以了。
图灵机器人API
配置方法
获取Json数据,加这一步的原因是部分主机不支持file_get_contents函数时,我们采用CURL来实现获取文件内容
function get_url_content($url=''){
if(function_exists('file_get_contents')) { //判断是否支持file_get_contents函数
$file_contents = file_get_contents($url);
} else {
$timeout = 5; //超时时间
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
}
return $file_contents;
}
if(function_exists('file_get_contents')) { //判断是否支持file_get_contents函数
$file_contents = file_get_contents($url);
} else {
$timeout = 5; //超时时间
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
}
return $file_contents;
}
这里就是核心的函数了,不过部分内容我就随心的折腾了一点,有点乱,你过自己想更好的研究下,可以去官网上看看官网给出的API和Json数据结构。申请到KEY时,把下面代码中的$key的值替换掉。代码写的烂,哈哈~
/**
* @auther:yefengs.con
* @return string(utf-8)
* @ url http://os.yefengs.com
*/
function get_tuling_char($Keyword=''){
if ($Keyword) {
$Keyword = str_replace(' ', '', $Keyword);//去掉空格
$Keyword = str_replace('%20', '', $Keyword);//去掉转码后的空格
$key='1234567890abcdefghigklmnopqrstuvwxyz';//KEY 秘钥
$getjson="http://www.tuling123.com/openapi/api?key=".$key."&info=".$Keyword."";
$content =json_decode(get_url_content($getjson));//转换成数组
$code = $content->code;//服务器返回的状态代码
switch ($code) {
case '100000':
return $content->text;
break;
case '200000':
return $content->text.',点击链接'.$content->url."看看";
break;
case '302000':
return $content->text."\n 《".$content->list[0]->article."》 \n 点击链接查看".$content->list[0]->detailurl;
break;
case '304000':
return $content->text."\n 《".$content->list[0]->name."》 \n 点击链接下载".$content->list[0]->detailurl;
break;
case '305000':
return $content->text."\n 车次:".$content->list[0]->trainnum."\n 起始站:".$content->list[0]->start."\n 到达站:".$content->list[0]->terminal."\n 开车时间:".$content->list[0]->starttime."\n 到达时间".$content->list[0]->endtime."\n 详细点击:".$content->list[0]->detailurl;
break;
case '306000':
$temp_content=$content->text."\n";
for ($i=0; $i <count($content->list) ; $i++) {
$temp_content .= "航班:".$content->list[$i]->flight."\n 起飞时间:".$content->list[$i]->starttime."\n 到达时间:".$content->list[$i]->endtime;
if ($i>=5) {
break;
}
}
return $temp_content;
break;
case '308000':
$temp_content=$content->text."\n";
for ($i=0; $i <= count($content->list)-1 ; $i++) {
$temp_content .= "电影名:".$content->list[$i]->name."\n 简介:".$content->list[$i]->info."\n 详情:".$content->list[$i]->detailurl."\n";
if ($i>=5) {
break;
}
}
return $temp_content;
break;
case '309000':
$temp_content=$content->text."\n";
for ($i=0; $i <= count($content->list)-1 ; $i++) {
$temp_content .= "酒店名:".$content->list[$i]->name."\n 价格:".$content->list[$i]->price."\n 满意度:".$content->list[$i]->satisfaction."\n";
if ($i>=5) {
break;
}
}
return $temp_content;
break;
case '311000':
$temp_content=$content->text."\n";
for ($i=0; $i <= count($content->list)-1 ; $i++) {
$temp_content .= "名称:".$content->list[$i]->name."\n 价格:".$content->list[$i]->price."\n 详情:".$content->list[$i]->detailurl."\n";
if ($i>=5) {
break;
}
}
return $temp_content;
break;
default:
return '服务器开小差了~稍后试试~';
break;
}
}
}
食用方法
直接传输参数就可以返回结果
get_tuling_char($Keyword)