两种方法创建智能微信机器人


 智能微信机器人指通过微信公众平台提供的接口通过一定的数据逻辑和数据库实现在微信平台上的智能对话。简单的机器人可以实现查询天气、美食菜谱等功能,高级的可以实现智能聊天、智能查询等功能。智能微信机器人是第三开发的微信公众平台功能,现在实现这种功能有两种方法,一种是接入第三方提供的微信机器人功能,一种是自己开发。下面我们就来说说这两种功能。

 
一、接入第三方实现微信机器人功能
 
现在好多微信公众平台第三方开发公司已经提供了这个功能,只要付费就可以使用。下面我给大家介绍一个案例,让大家了解一下操作流量。不同的公司有不同操作流程,但是都大同小异。
 
首先,你需要去微信公众平台官网注册一个账号。
备注:下面的教程将以“FAQ robot”服务号测试账号为例进行演示。
登录自己的微信公众账号后台,点击导航了栏右侧的 高级功能 ,如图:
 
两种方法创建智能微信机器人
点击进入开发模式,开启开发模式。如图:
两种方法创建智能微信机器人
       访问FAQ robot智能问答机器人官网(www.faqrobot.org),注册并登录后台。
 
      登录faqrobot的管理后台后,进入 微信平台 选项:填写token(随便写,仅作为认证识别码,如faqrobot)  并点击保存!
两种方法创建智能微信机器人
       回到微信公众平台管理页面,到接口配置信息页面:根据上面faqrobot管理的微信平台页面,找到对应的验证URL和token,填写都微信平台的接口配置页面,把信息填写到对应的输入框里,然后点击提交验证,上面会显示验证成功。如图:
两种方法创建智能微信机器人
 此时,如果你操作成功,您将看到您成为开发者:
两种方法创建智能微信机器人
到此时,你只需要回到高级功能,进入编辑模式后关闭此模式,然后返回并进入开发模式,并点击开启模式:
两种方法创建智能微信机器人
到此,恭喜你,你已设置成功!回到 设置 里面,您可以添加您的微信公众号,然后聊天啦!
 
二、独立开发实现微信机器人功能
    能独立开发的人都能牛人,应该不会看我这篇文章,所有为了照顾像我们这样小白,列举一个简单开发方式,可以了解一下,也可试着操作一下。
 
小i机器人申请地址为http://cloud.xiaoi.com/index.jsp
注册即可获得"初级测试权限",每日能有50次的智能问答;提交个人真实信息后可获得"高级测试权限",每月有10000次智能问答调用次数。想要更多,则要付费。
 
如果想体验机器人的功能,那么可以直接在后台找到url和token,填到开发模式下即可。
两种方法创建智能微信机器人
如果公众账号中已经有其他功能,那么就需要使用代码来接入,小i机器人的实现代码如下:
复制代码
 1 function getXiaoiInfo($openid, $content)
 2 {
 3     //定义app
 4     $app_key="************";
 5     $app_secret="********************";
 6 
 7     //签名算法
 8     $realm = "xiaoi.com";
 9     $method = "POST";
10     $uri = "/robot/ask.do";
11     $nonce = "";
12     $chars = "abcdefghijklmnopqrstuvwxyz0123456789";
13     for ($i = 0; $i < 40; $i++) {
14         $nonce .= $chars[ mt_rand(0, strlen($chars) - 1) ];
15     }
16     $HA1 = sha1($app_key.":".$realm.":".$app_secret);
17     $HA2 = sha1($method.":".$uri);
18     $sign = sha1($HA1.":".$nonce.":".$HA2);
19 
20     //接口调用
21     $url = "http://nlp.xiaoi.com/robot/ask.do";
22     $ch = curl_init();
23     curl_setopt($ch, CURLOPT_URL, $url);
24     curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-Auth:    app_key="'.$app_key.'", nonce="'.$nonce.'", signature="'.$sign.'"'));
25     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
26     curl_setopt($ch, CURLOPT_POST, 1);
27     curl_setopt($ch, CURLOPT_POSTFIELDS, "question=".urlencode($content)."&userId=".$openid."&platform=custom&type=0");
28     $output = curl_exec($ch);
29     if ($output === FALSE){
30         return "cURL Error: ". curl_error($ch);
31     }
32     return trim($output);
33 }
复制代码
微信接口中调用如下:
 
复制代码
1     private function receiveText($object)
2     {
3         $keyword = trim($object->Content);
4         include("xiaoi.php");
5         $content = getXiaoiInfo($object->FromUserName, $keyword);
6         $result = $this->transmitText($object, $content);
7         return $result;
8     }
复制代码