微信公众平台聊天机器人。「创业的才」目录。


「创业的就」系列,是bong创始人顾大宇在创业的路达勾画的一对感受,有或是感性的故事,也产生或是殊理性之总结。将会晤陆续在dayu的民众号(dayuwow)上连载,希望能够针对创业者有多少帮助。

点击访问原文
君还可以加入全栈技术交流群(QQ群号:254842154)

吁点击下面的链接浏览各章节:


第1节:it’s up to you.
 &version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 2014-06-09

今天我们来瞧有安比较好玩的扯淡机器人,并且经过微信公众号加建筑一个自己之闲聊机器人。

第2节:不迭代就会坏&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-06-23

QQ机器人

第3节:如何化解问题&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-07-08

腾讯有一个可聊的QQ机器人,当时认为特别好打,它见面不腻其烦地陪您拉,不吃不喝。它的QQ号是:615050000。

第4节:时间管理办法的钩&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-07-14

小黄鸡

第5节:Cloud
Thinking:团队共同想&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-07-16

早就那个光火之人们网小黄鸡聊天机器人,陪在大学生度过了小个缺损虚寂寞冷的日日夜夜。在这里可以找到开发文档:http://dev.skjqr.com/
。它提供了一个很快对接微信后台的效能:

第6节:不,你不是猪,你是满灵性的人类&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-07-19

8.pic.jpg

第7节:为什么创业?&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-07-21

如若你的微信公众号没有好出之职能,那么要按照下面的“微信接口”说明,在微信公众号后台装置参数即可。

第8节:你好,小米手环&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-07-22

而你的微信公众号就发协调的职能,现在而想进入小黄鸡的功力,那么就算假设协调开支了。这里特别专注,msg参数需要GBK编码。

第9节:创造就是改变自己&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-07-25

脚让出中心代码(php):

第10节:石头则坚硬,可蛋才是生命&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-07-30

    public function response($postObj){
    $r["r"] = false;
    $response = getWebCont(SK_ROBOT_API . iconv("UTF-8","GB2312//IGNORE", $postObj['content']));
    //返回的格式是否正确,假如正确,是以[msg]开头的
    if(preg_match(SK_REG_ROBOT_RESPONSE_MSG_BEGIN, $response , $match)){
        $response = str_replace("[msg]" , "" , $response);
        $response = str_replace("[/msg]" , "" , $response);
        $r["r"] = true;
        $r["res"] = $response;
    }
    return $r;
}

第11节:去TMD互联网思维,性价比要已经&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-08-01

宏定义:

第12节:扒光互联网思维:连接至上&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-08-04

define ("SK_ROBOT_API","http://dev.skjqr.com/api/weixin.php?email=your_email&appkey=your_appkey&msg=");

// 返回的消息以 [msg] 开头
define("SK_REG_ROBOT_RESPONSE_MSG_BEGIN","/\[msg]/"); 

第13节:让用户有存在感&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-08-11

getWebCont是php中经curl方式发送请求的自定义方法:

第14节:连接至上:互联网血液&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-08-21

function getWebCont($url, $data = '', $sslVerify = false) {
$ch = curl_init();
if ($sslVerify) {
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if ($data) {
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$body = curl_exec($ch);
$head = curl_getinfo($ch);
$error = curl_error($ch);
curl_close($ch);
if ($head['http_code'] == '200') {
    return $body;
} else {
    //log here 
    return false;
}
}

第15节:Watch out
watch!&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-09-10

可看看,使用要比较简单的。

第16节:你只能赤手空拳,面对当下世界&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-09-23

图灵机器人

第17节:连接至上:让高之片重新胜似&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-10-16

个人于好图灵机器人,官方网址:http://www.tuling123.com/openapi/。
它回到的闲谈数据被,类型比较全面,而且是自己的json格式。而有点黄鸡返回的饶是一个字符串。

第18节:论创业者的修养
I:面对不开心的能量&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-10-22

9.pic.jpg

第19节:万物互联是啊?&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-12-02

对她回到的数据,我们得以还对数码进行重组。这是我勾勒的一个智:

第20节:创业这同一年&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2014-12-31

/*
 * 注意:info字段需要urlencode编码
 * $postObj是微信返回的数据,我对它进行了二次封装
 */
public function response($postObj){
    $r["r"] = true;
    $response = getWebCont(TL_ROBOT_API . "userid=" . $postObj['from'] . '&info=' . urlencode($postObj['content']));
    if(!$response){
        $r['res'] = "我无法理解你的问题。抱歉。";
        return $r;
    }

    $json = json_decode($response);

    if(!is_object($json) || !property_exists($json, "code")){
        $r['res'] = "我无法理解你的问题。抱歉。";
        return $r;
    }

    //$r["r"] = true;
    switch($json->code){
        //文本类数据
        case 100000:
            $tmp = $json->text;
            break;
        //网址类数据 打开百度
        case 200000:
            $tmp = $json->text . "\n" . $json->url;
            break;
        //菜谱  红烧肉怎么做?
        case 308000:
            $tmp = $json->text . "\n\n";

            foreach($json->list as $kv){
                $t = WXResponseHelper::buildHref($kv->name,$kv->detailurl,false);
                $t .= "(" . $kv->info . ")";
                $t .= "\n\n";

                if(!WXResponseHelper::maxLen($tmp, $t)){
                    $tmp .= $t;
                }else{
                    break;
                }
            }

        break;

        //列车信息  深圳到成都的火车
        case 305000:
            $tmp = $json->text . "\n\n";
            foreach($json->list as $kv){
                $t = $kv->trainnum . "\n";
                $t .= $kv->start . "(" . $kv->starttime . ")" . " → " . $kv->terminal . "(" . $kv->endtime . ")";
                $t .= "\n\n";

                if(!WXResponseHelper::maxLen($tmp, $t)){
                    $tmp .= $t;
                }else{
                    break;
                }
            }
            break;
        //航班 明天成都飞深圳的飞机
        case 306000:
            $tmp = $json->text . "\n\n";
            foreach($json->list as $kv){
                $t = $kv->starttime . " - " . $kv->endtime . "  " . $kv->flight . "\n\n";
                if(!WXResponseHelper::maxLen($tmp, $t)){
                    $tmp .= $t;
                }else{
                    break;
                }
            }
            break;
        //酒店 深圳南山区附近的酒店
        case 309000:
            $tmp = $json->text . "\n\n";
            foreach($json->list as $kv){
                $t = $kv->price . "  " . $kv->satisfaction . "  " . WXResponseHelper::buildHref($kv->name,$kv->icon) . "\n";
                if(!WXResponseHelper::maxLen($tmp, $t)){
                    $tmp .= $t;
                }else{
                    break;
                }
            }
            break;
        //商品价格 惠人榨汁机多少钱
        case 311000:
            $tmp = $json->text . "\n\n";
            foreach($json->list as $kv){
                $t = $kv->price . "  " . WXResponseHelper::buildHref($kv->name,$kv->detailurl) . "\n\n";
                if(!WXResponseHelper::maxLen($tmp, $t)){
                    $tmp .= $t;
                }else{
                    break;
                }
            }
            break;
        //新闻 最新新闻
        case 302000:
            $tmp = $json->text . "\n\n";
            foreach($json->list as $kv){
                $t = WXResponseHelper::buildHref($kv->article,$kv->icon) . "(" . $kv->source . ")" . "\n\n";
                if(!WXResponseHelper::maxLen($tmp, $t)){
                    $tmp .= $t;
                }else{
                    break;
                }
            }
            break;

        case 40001:
            $tmp = "key的长度错误(32位)";
            break;
        case 40002:
            $tmp = "请求内容为空";
            break;
        case 40003:
            $tmp = "key错误或帐号未激活";
            break;
        case 40004:
            $tmp = "当天请求次数已用完";
            break;
        case 40005:
            $tmp = "暂不支持该功能";
            break;
        case 40006:
            $tmp = "服务器升级中";
            break;
        case 40007:
            $tmp = "服务器数据格式异常";
            break;
        case 50000:
            $tmp = "机器人设定的“学用户说话”或者“默认回答”";
            break;
        default:
            $tmp = "我无法理解你的问题。抱歉。";
            break;
    }

    $r['res'] = $tmp;
    return $r;
}

第21节:论刚需&version=11020012&pass_ticket=11S4ll0Qlk4Fy78y%2Bd1VgJa8UNEXfSJ%2F134CiWeO%2BYs%3D) 
  2015-03-08

宏定义:

第22节:论大腿&version=11020012&pass_ticket=pxdEBvqdM3VkxyO4mjQWbdambwdkMJHNXkYMGMvhgO4%3D)
   2015-03-09

//图灵机器人
define("TL_ROBOT_API","http://www.tuling123.com/openapi/api?key=your_appkey&");

第23节:论手表(上)&version=11020012&pass_ticket=RYvdX6R2E8b%2BcVOggpj8lGndBiO%2BHyaOl2vtu7%2BuPJY%3D)
   2015-03-11

其中,WXResponseHelper类是一个工具类:

第24节:论手表(中) 
  2015-03-14

class WXResponseHelper {

/**
 * 构造链接
 * @param $txt
 * @param $link
 * @param bool $blank
 * @return string
 */
public static function buildHref($txt, $link, $blank = true){
    if($link == "")
        return $txt;

    return sprintf("<a href=\"%s\" %s >%s</a>", $link, ($blank ? "target=\"_blank\"" : ""), $txt);
}

public static function maxLen($allText, $text){
    $len = strlen($text);
    $total_bytes = strlen($allText);
    $total_bytes += $len;
    return $total_bytes < WECHAT_MAX_RESPONSE_LEN ? false : true;
}

}

第25节:论迭代&version=11020012&pass_ticket=lOWUICya9qotxpSGrOLgof9BggdiQ1lE0Q3wpU0TTnc%3D) 
  2015-03-27

咱只要顾,返回给微信的字符串中,最特别未克跳2048字符,不然会唤醒民众号无法提供劳动。另外,请求参数中带齐userid,会要拉具有上下文,我这里直接利用了用户之openid(长度也28)。

第26节:论手表(下)  2015-03-30

////回复给微信的消息长度不能超过2048字节
define("WECHAT_MAX_RESPONSE_LEN" , 2048); 

俺们来瞧效果吧:

菜谱

航班

酒店

价格

价格

或坏容易之吧!这里涉及到了一些微信公众号的后台开发,我起工夫还特别写稿子介绍,大家关注自己的博客即可。对于怎样将该聊天功整合及微信公众号,我之提议是,先倒前的逻辑,假如都尚未匹配到,再将用户发来之文件丢给聊天机器人处理。

怀念调戏瞬间机器人也?微信扫一扫下面的亚维码,它还有在线记录文字与图纸的功用哦,更多惊喜等待你失去发现。更多介绍好扣押这里:http://mp.weixin.qq.com/s?\_\_biz=MjM5MTY4MjQ1Mw==&mid=203319413&idx=1&sn=cd0632d6bb1b790c0ca63fd4c675c649&key=79cf83ea5128c3e5d0570a32265ee45aaf15fc97a7b962ce1be0348ef8da0c01e66bef4697cabd601b900cbf2a7db7e2&ascene=0&uin=MzI2NTUzMzIw&devicetype=iMac+MacBookPro11%2C1+OSX+OSX+10.10.1+build(14B25)&version=11020012&pass\_ticket=dUkp7VhYdQm79stsvQ6JFA04to9fW9m%2FNGTH%2FvFdjDA1HQWBRpIL%2BZ8KZ2g43sKq&version=11020012&pass_ticket=dUkp7VhYdQm79stsvQ6JFA04to9fW9m%2FNGTH%2FvFdjDA1HQWBRpIL%2BZ8KZ2g43sKq)

hellochats

相关文章