网站改版
|
WAP网站制作
|
域名注册
|
虚拟主机
|
服务器
|
海微商
|
海微信
|
海微通
|
无障碍
| 24小时服务电话:13807590485
海南网站建设
海南网站制作
海口网站建设
三亚网站建设
儋州网站建设
五指山网站建设
文昌网站建设
琼海网站建设
万宁网站建设
东方网站建设
定安网站建设
网站首页
网站首页
网站建设
网站建设
微信开发
微信开发
网站推广
网站推广
东方世纪华联
网站超市
网站超市
客户案例
客户案例
网站模板
网站模板
关于我们
关于我们
无障碍
微信开发
微信系统开发
微信开发功能
公众号基础教程
开发技术资讯
公众号推广营销
客户案例
联系我们
QQ服务群:
28519571
工作时间:
86-0898-31568080
传真号码:
86-0898-31568085
24小时服务:
0138-07590485
您现在的位置: 首页 >> 微信开发 >> 开发技术资讯
开发技术资讯
微信公众平台机器人教程
世纪华联 | 2018-01-26 23:55:58 | 阅读:12362
首先要去微信公众平台申请一个帐号
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);
}
}
}
?>
复制代码
海南网站建设
|
海南网站制作
|
海口网站建设
|
三亚网站建设
|
儋州网站建设
|
五指山网站建设
|
文昌网站建设
|
琼海网站建设
|
万宁网站建设
|
东方网站建设
|
定安网站建设
|
屯昌网站建设
|
澄迈网站建设
|
临高网站建设
|
白沙网站建设
|
昌江网站建设
|
乐东网站建设
|
陵水网站建设
|
保亭网站建设
|
琼中网站建设
|
海口精英网
|
三亚精英网
|
文昌精英网
|
琼海精英网
|
陵水精英网
|
儋州精英网
|
万宁精英网
|
澄迈精英网
|
海微通
合作伙伴
企业发展
企业文化
联系我们
在线订购
网站地图
返回首页
手机版
海口世纪华联科技有限公司2024版权所有 24小时服务热线:13807590485 欢迎来电咨询
地址:海南省.海口市.海甸二东路环惠大厦6楼(南宝路明都大厦107#) 公司电话:0898-31568080 31568060 QQ:85398489
全国合作联盟分布:海南海口 四川成都 湖北武汉 湖南长沙 安徽合肥 广东深圳 山西太原 西藏拉萨
技术服务: E_mail:server@hnzlweb.com 服务订购:E_mail:server@hnzlweb.com 在线客服邀请
琼ICP备10201086号-15
推广关键字:
东方网站建设
,
东方网站制作
,
东方网站开发
,
东方微信开发
,
东方微信公众号开发
,
东方微信公众号代运营
,
东方模板网站制作
,
东方网页设计
,
东方网络公司