网站改版
|
WAP网站制作
|
域名注册
|
虚拟主机
|
服务器
|
海微商
|
海微信
|
海微通
|
无障碍
| 24小时服务电话:13807590485
海南网站建设
海南网站制作
海口网站建设
三亚网站建设
儋州网站建设
五指山网站建设
文昌网站建设
琼海网站建设
万宁网站建设
东方网站建设
定安网站建设
网站首页
网站首页
网站建设
网站建设
微信开发
微信开发
网站推广
网站推广
海南世纪华联
网站超市
网站超市
客户案例
客户案例
网站模板
网站模板
关于我们
关于我们
1
2
3
4
Previous
Next
无障碍
微信开发
微信系统开发
微信开发功能
公众号基础教程
开发技术资讯
公众号推广营销
客户案例
联系我们
QQ服务群:
28519571
工作时间:
86-0898-31568080
传真号码:
86-0898-31568085
24小时服务:
0138-07590485
您现在的位置: 首页 >> 微信开发 >> 开发技术资讯
开发技术资讯
微信公众平台机器人教程
世纪华联 | 2018-01-26 23:55:58 | 阅读:13280
首先要去微信公众平台申请一个帐号
http://mp.weixin.qq.com/
申请一个SAE应用
我的是
http://weixintalk.sinaapp.com
设置微信接口地址
微信平台->设置->回复设置->自定义回复->调用公众平台消息接口>>
url写这个url,token随便定一个"helloczq"
开启SAE服务
由于我们需要教机器人一些日常用语,所以我们必须要一个存储他们的空间,这里暂时使用SAE的kvdb服务,请先到sae开启。
定义规则
我们先给他定义一个简单的规则,比如
求助是
help
教他学东西是
"_" + 问题 + ":" + 回答
比如:_hi:hello,就是回复hello给hi
如果一样东西有很多人教他,机器人应该优先回复旧的东西。
聊天代码
规则定好了,我们先写一个聊天的类
class talk {
public function reply($str) {
$kv = new SaeKV ();
$kv->init (); //用户输入帮助语句,可以自定义帮助语法
if ($str == 'help' || $str == '求助'){
return "要教我读书,请英文下划线开头,接着问题,接着英文冒号,接着回答";
} //下划线开头的教学模式
if (substr($str, 0,1) == '_'){
//教
$pos = strpos($str, ':');
if ($pos > -1){ //问题
$q = substr($str, 1,$pos - 1); //答案
$a = substr($str, $pos + 1);
//加入知识库
$ret = $kv->get('know_' . md5($q)); if ($ret === false || !is_array($ret))
$ret = array();
$ret[] = $a;
$kv->set('know_' . md5($q), $ret);
return "known::" . $q . '/' . $a ;
}
}
$ret = $kv->get('know_' . md5($str));//查询数据库,寻找问题答案
if ($ret === false || !is_array($ret) || count($ret) == 0){
return '我什么都不知道,输入"help"求助';
}else{
//随机一个
while(count($ret) > 1){
$re = array_shift($ret);
if (rand(0, 1) == 0)
return $re;
}
return array_shift($ret);
}
}
复制代码
这个类会自动回复,教学,大家可以简单测试一下
接入微信
其实就是把上面那个类和官方的php代码拼起来...
以下是全部代码,包括验证部分
define ( "TOKEN", "helloczq" );
$wechatObj = new wechat ();
$wechatObj->valid ();
$wechatObj->responseMsg ();
class wechat {
public function valid() {
$echoStr = $_GET ["echostr"];
if (! $this->checkSignature ())
exit ();
}
public function responseMsg() {
$postStr = $GLOBALS ["HTTP_RAW_POST_DATA"];
if (! empty ( $postStr )) {
$postObj = simplexml_load_string ( $postStr, 'SimpleXMLElement', LIBXML_NOCDATA );
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$content = trim ( $postObj->Content );
$time = time ();
$talk = new talk();
$textTpl = "
%s
0
";
$msgType = "text";
$contentStr = $talk->reply($content);
$resultStr = sprintf ( $textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr );
echo $resultStr;
} else {echo $_GET ["echostr"];
exit ();
}
}
private function checkSignature() {
$signature = $_GET ["signature"];
$timestamp = $_GET ["timestamp"];
$nonce = $_GET ["nonce"];
$token = TOKEN;
$tmpArr = array (
$token,
$timestamp,
$nonce
);
sort ( $tmpArr );
$tmpStr = implode ( $tmpArr );
$tmpStr = sha1 ( $tmpStr );
if ($tmpStr == $signature) {
return true;
} else {
return false;
}
}
}
class talk {
public function reply($str) {
$kv = new SaeKV ();
$kv->init ();
if ($str == 'help' || $str == '求助'){
return "要教我读书,请英文下划线开头,接着问题,接着英文冒号,接着回答";
}
if (substr($str, 0,1) == '_'){
$pos = strpos($str, ':');
if ($pos > -1){
$q = substr($str, 1,$pos - 1);
$a = substr($str, $pos + 1);
$ret = $kv->get('know_' . md5($q));
if ($ret === false || !is_array($ret))
$ret = array();
$ret[] = $a;
$kv->set('know_' . md5($q), $ret);
return "known::" . $q . '/' . $a ;
}
}
$ret = $kv->get('know_' . md5($str));
if ($ret === false || !is_array($ret) || count($ret) == 0){
return '我什么都不知道,输入"help"求助';
}else{
//随机一个
while(count($ret) > 1){
$re = array_shift($ret);
if (rand(0, 1) == 0)
return $re;
}
return array_shift($ret);
}
}
}
?>
复制代码
海南网站建设
|
海南网站制作
|
海口网站建设
|
三亚网站建设
|
儋州网站建设
|
五指山网站建设
|
文昌网站建设
|
琼海网站建设
|
万宁网站建设
|
东方网站建设
|
定安网站建设
|
屯昌网站建设
|
澄迈网站建设
|
临高网站建设
|
白沙网站建设
|
昌江网站建设
|
乐东网站建设
|
陵水网站建设
|
保亭网站建设
|
琼中网站建设
|
海口精英网
|
三亚精英网
|
文昌精英网
|
琼海精英网
|
陵水精英网
|
儋州精英网
|
万宁精英网
|
澄迈精英网
|
海微通
合作伙伴
企业发展
企业文化
联系我们
在线订购
网站地图
返回首页
手机版
海口世纪华联科技有限公司2025版权所有 24小时服务热线:13807590485 欢迎来电咨询
地址:海南省.海口市.海甸二东路环惠大厦6楼(南宝路明都大厦107#) 公司电话:0898-31568080 31568060 QQ:85398489
全国合作联盟分布:海南海口 四川成都 湖北武汉 湖南长沙 安徽合肥 广东深圳 山西太原 西藏拉萨
技术服务: E_mail:server@hnzlweb.com 服务订购:E_mail:server@hnzlweb.com 在线客服邀请
琼ICP备10201086号-15
推广关键字:
海南网站建设公司
,
海南网站制作公司
,
海南网站开发公司
,
海南微信开发公司
,
海南微信公众号开发公司
,
海南微信公众号代运营公司
,
海南模板网站制作公司
,
海南网页设计公司
,
海南网络公司
鐎癸拷
閺堬拷
閸︺劎鍤庣€广垺婀�
缂佺厧鎮庨崪銊嚄
鐎广垺婀囬崪銊嚄
娑撴艾濮熼崪銊嚄
閸烆喖鎮楅幎鏇$様
閹殿偅寮块惄瀛樺复閼辨梻閮�
鐎广垺鍩涙い鍦窗缁狅紕鎮婄化鑽ょ埠
閸忣剙寰冮崨妯轰紣OA缁崵绮�
閸︺劎鍤庣拋銏e枠娴溠冩惂
娴滅儤澧犻幏娑滀粧
瀵邦喕淇婇崗顑跨船楠炲啿褰村鈧崣锟�
瀵邦喕淇婇崯锟�
閺囧瓨鏌�
缂冩垹鐝崚鏈电稊
缂冩垹鐝粚娲?閺堝秴濮熼崳锟�
閸╃喎鎮曞▔銊ュ斀
瀵邦喕绱掔粔鈧�.閸濅胶澧濈仦锟�
閸旂偛鍙�:0898-31568060
娑撴挾鍤�:13807590485