我们经常在一些公众号里回复信息,微信公众号都会自动回复信息,区别于微信平台的自动回复,有的公众号上面的自动回复,则更像是一个机器人客服。下面小编就教大家如何搭建微信公众号机器人。

所需材料:

微信公众号:https://mp.weixin.qq.com/
阿里云服务器

1、公众号申请

任务时间:10min ~ 15min

注册一个公众号

首先进入《微信公众号平台》,然后注册一个账号,类型选择订阅号,然后根据相应的提示完成信息的填写和验证。注册微信公众号这里就不再详述。

2、后台服务器的搭建

任务时间:10min ~ 15min

安装 NodeJS

首先执行以下命令

sudo su

下载最新的稳定版 v6.10.3 到本地

wget https://nodejs.org/dist/v6.10.3/node-v6.10.3-linux-x64.tar.xz

下载完成后, 将其解压

tar xvJf node-v6.10.3-linux-x64.tar.xz

将解压的 Node.js 目录移动到 /usr/local 目录下

mv node-v6.10.3-linux-x64 /usr/local/node-v6

配置 node 软链接到 /bin 目录

ln -s /usr/local/node-v6/bin/node /bin/node

配置 NPM

NPM 是 Node.js 的包管理和分发工具。它可以让 Node.js 开发者能够更加轻松的共享代码和共用代码片段

下载 node 的压缩包中已经包含了 npm , 我们只需要将其软链接到 bin 目录下即可

ln -s /usr/local/node-v6/bin/npm /bin/npm

配置环境变量

将 /usr/local/node-v6/bin 目录添加到 $PATH 环境变量中可以方便地使用通过 npm 全局安装的第三方工具

echo 'export PATH=/usr/local/node-v6/bin:$PATH' >> /etc/profile

生效环境变量

source /etc/profile

安装 Express

安装 Express 应用脚手架:

npm install express-generator -g

创建新的项目

执行

cd /data/
express yourApp

这时候会在 /data 生成应用目录 /yourApp,继续执行以下命令

cd yourApp
npm install
npm start

此时服务已经在 http://ip:3000 上启动,可以在浏览器中浏览测试。

3、进入开发者模式

任务时间:10min ~ 15min

配置服务器信息,进入开发者模式

微信平台会去验证你填写的服务器的有效性,所以配置服务器前要先编写服务器有效性验证的代码。

在终端使用 Ctrl + C 终止刚才启动的服务,然后执行以下命令安装依赖的文件:

npm install xml2js sha1 querystring

编辑 app.js,参考下面的代码:
示例代码:/data/yourApp/app.js

var express = require('express');
var app = express();
var http = require('http');
var sha1 = require('sha1');
var xml2js = require('xml2js');
var querystring  = require('querystring');process.env.PORT = '80';
function checkSignature(req) {// 获取校验参数var signature = req.query.signature;var timestamp = req.query.timestamp;var nonce = req.query.nonce;// 此处为实验分配了一个 token,也可以修改为自己的 tokenvar token = 'Password';// 按照字典排序var params = [token, timestamp, nonce];params.sort();// 连接var str = sha1(params.join(""));// 返回签名是否一致return str == signature;
}// 接入验证
app.get('/', function(req, res) {// 签名成功if (checkSignature(req)) {res.send(200, req.query.echostr);} else {res.send(200, 'fail');}
});module.exports = app;

启动服务:

npm start

登录微信公众号平台,然后拉到页面的最下面,点击基本配置菜单。填写以下信息:

  • 服务器地址(URL):填写 您的云服务器 IP 地址
  • 令牌(Token):填写上面代码中使用到的 Token,如无修改,直接使用 Password
  • 消息加解密密钥(EncodingAESKey):随机字符串。可以让平台生成。
  • 消息加解密方式:选择明文方式

配置完毕后点击提交,提交成功后,在基本配置菜单页面点击启用。

此时,微信用户给公众号发送的信息,会由微信平台转发给您的服务器,然后您的服务器进行处理后返回给用户。

在页面点击提交,检查是否可以提交成功。

这是您的服务器地址,服务器主要是用于实现机器人的逻辑。主机部分必须是公网 IP 或者可解析到公网 IP 的域名。

4、机器人的实现

任务时间:10min ~ 15min

实现机器人功能

首先在图灵机器人官网注册(http://www.tuling123.com/sso-web/register) 和申请一个机器人,具体步骤可以参考视频。

申请之后,我们来调用 API 实现机器人的功能。

编辑 app.js,参考下面的代码:

示例代码:/data/yourApp/app.js

var express = require('express');
var app = express();
var http = require('http');
var sha1 = require('sha1');
var xml2js = require('xml2js');
var querystring  = require('querystring');process.env.PORT = '80';
function checkSignature(req) {// 获取校验参数var signature = req.query.signature;var timestamp = req.query.timestamp;var nonce = req.query.nonce;// 此处为实验分配了一个 token,也可以修改为自己的 tokenvar token = 'Password';// 按照字典排序var params = [token, timestamp, nonce];params.sort();// 连接var str = sha1(params.join(""));// 返回签名是否一致return str == signature;
}// 接入验证
app.get('/', function(req, res) {// 签名成功if (checkSignature(req)) {res.send(200, req.query.echostr);} else {res.send(200, 'fail');}
});function handler(req, res) {let  buf = '';// 获取XML内容req.setEncoding('utf8');req.on('data', function(chunk) {buf += chunk;});// 内容接收完毕req.on('end', function() {xml2js.parseString(buf, function(err, json) {if (err) {err.status = 400;} else {req.body = json;}});let data = req.body.xml;var msg = {"toUserName" : data.FromUserName[0],"fromUserName" : data.ToUserName[0],"createTime" : data.CreateTime[0],"msgType" : data.MsgType[0],"content" : data.Content[0],"msgId" : data.MsgId[0]};request(msg, req, res)});
}function request(data, req, res) { var msg = {             "key":'6d76234cf7ee488d84aa1a54397ae866',   // 可以填入自己申请的机器人的apiKey            "info": data.content,             "userid": ~~(Math.random() * 99999)};  var text = querystring.stringify(msg);    var options = {  hostname: 'www.tuling123.com',  path: '/openapi/api',  method: 'POST',headers: {  'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'  }  };  var requestObj = http.request(options, function (response) {  var result = '';response.setEncoding('utf8');  response.on('data', function (chunk) {  result +=  chunk;});  response.on('end',function() {  try{var obj = JSON.parse(result);}catch(e){data.content = e.message;echo(data, res);return;}data.content = obj.text;echo(data, res);})});  requestObj.on('error', function (e) {console.log('problem with request: ' + e.message);  data.content = e.message;  echo(data, res);});  requestObj.write(text);requestObj.end();
}
function echo(data, res) {var time = Math.round(new Date().getTime() / 1000);var output = "" +"<xml>" +"<ToUserName><![CDATA[" + data.toUserName + "]]></ToUserName>" +"<FromUserName><![CDATA[" + data.fromUserName + "]]></FromUserName>" +"<CreateTime>" + time + "</CreateTime>" +"<MsgType><![CDATA[" + data.msgType + "]]></MsgType>" +"<Content><![CDATA[" + data.content + "]]></Content>" +"</xml>";res.type('xml');res.send(output);
}
// Start
app.post('/', function(req, res) {handler(req, res);
});module.exports = app;

操作键盘按下 Ctrl + C 终止之前的服务,然后重新启动:

npm start

您可用对比模式查看新增的部分

5、部署完成

任务时间:3min ~ 5min

访问服务

在微信公众号中关注自己的公众号,然后发送信息给公众号,测试是否有返回。在微信公众号平台可以对公众号信息进行管理。更复杂的逻辑可以参考微信公众号平台开发者文档和图灵机器人开发文档。

大功告成

恭喜您已经完成了搭建微信AI机器人的搭建,如需购买云服务器学习搭建微信机器人,推荐阿里云服务器购买前可以领取代金券。
优惠券

如何用阿里云服务器搭建微信公众号机器人?相关推荐

  1. 阿里云进阶课程三——基于云服务器构建微信公众号管理系统

    基于阿里云服务器构建微信公众号管理系统 准备工作 阿里云服务器镜像配置 FileZilla和终端工具安装 下载微擎压缩包 微擎的安装和配置 在云服务器上配置微擎文件 设置数据库信息 云服务器上安装微擎 ...

  2. 使用阿里云ECS构建微信公众号管理系统

    微擎-基于ECS搭建微信公众号管理系统 相关链接: 微擎 阿里云ECS开通 一.环境搭建 连接ECS服务器 打开系统自带的终端工具: Windows:CMD或Powershell. MAC:Termi ...

  3. 云服务器饥荒_如何用阿里云服务器搭建饥荒专用服务器?

    前几天我一朋友在steam上邀请我一起玩饥荒,可是联机的时候,总是一卡一卡的,好不容易玩的正尽兴的时候,我朋友突然有事就离开了房间,好不容易打的怪,建的家,房主一退就不能再次玩了只能等待他回来. 针对 ...

  4. Windows本地服务器搭建(微信公众号开发)

    由于近期做毕设过程中想尝试开发一个微信公众号,又苦于没租服务器,所以就尝试在本地搭建一个服务器,以下为操作流程,亲测成功,奉上干货! 1 安装nginx 网址:nginx ① 进入->downl ...

  5. 云服务器构建微信公众号管理系统

    一.准备工作 开通云服务器安装 我准备的是(Ubuntu18.04 Apache PHP7.1)的镜像 配置安全组 采用FileZilla文件传输工具和putty终端工具 FileZilla下载地址: ...

  6. 如何用阿里云服务器搭建个人博客网站?

    Hello,各位小伙伴们大家好,你是不是已经领到阿里云高校"在家实践"计划的ECS了呢?你有木有想好用ECS做点什么呢?今天,我将介绍如何轻松上云,从搭建博客开始,为你开辟一个属于 ...

  7. 云主机配置微信公众号后台全记录 --【 阿里云ECS CentOS7 + Python3 + Flask + Nginx + Gunicorn + WeRoBot + Systemd 】

    前言 在天秤座的纠结性格反复权衡后,最终我还是拥有了自己的第一个个人云主机.我这里选择的是"阿里云学生专享服务器",在做学生的最后一年有幸享受到9.5/月的优惠价格,还是要感谢阿里 ...

  8. 不花一分钱快速搭建自己的微信公众号机器人

    ▌前言 前些天闲来无事想弄个微信公众号机器人,因为可以用机器人做好多事情,比如可以让它变成一个智能聊天机器人,也可以让它爬取并推送arxiv上自己想要的论文,还可以让它绘制并推送有关肺炎疫情的曲线图等 ...

  9. 华为云服务器如何搭建微信公众号后台-收发文本信息?

    概述 在本教程中,您将学会使用弹性云服务器(以下简称 ECS)搭建微信公众号处理后台,使用Python语言编写对应的微信消息处理逻辑代码,接收从微信服务端转发过来的消息,并返回处理结果给最终用户,如图 ...

最新文章

  1. PAT(甲级)2020年春季考试 7-2 The Judger
  2. C# 读取CSV和EXCEL文件示例
  3. 【知识星球】为什么图像分类任务要从256*256中裁剪出224*224
  4. 软键盘挡住EditText
  5. 从零构建vue+webpack (一)
  6. 推荐曹济的FPA培训课程
  7. mongodb可视化工具 linux,Linux中安装启动MongoDB与可视化工具
  8. 2018 C语言大作业--21_Ekko制作教程
  9. Codeforces Round #518 (Div. 2): E. Multihedgehog(模拟)
  10. 基于 Flink 的典型 ETL 场景实现方案
  11. JavaScript 中typeof、instanceof 与 constructor 的区别?
  12. Win10/11 自带输入法一键变五笔86/98/郑码/小鹤音形/表形码
  13. hdmi 屏幕旋转 树莓派_树莓派7寸HDMI显示屏使用教程
  14. 图床:使用新浪微博相册
  15. 极客漫画-linux合集(二)
  16. 【深度学习】ONNX 模型文件修改节点的名称,修改输入名称,修改输出名称
  17. ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
  18. Java,基于简单输入的薪水计算器
  19. ORACLE+SQL性能优化
  20. vue引用public目录下文件

热门文章

  1. 新能源汽车电池水冷板如何检测气密性?GripSeal格雷希尔快速连接器G15气动管内径封堵头
  2. 12306车站信息爬取(1)——输入条件的判断,包括出发站,到达站,和出发时间,并获取车次信息的链接
  3. win10怎么用记事本编译C语言,大师教你win10系统使用记事本打开文件的设置教程...
  4. MATLAB导入iges曲面,能不能把.*igs文件导到matlab中进行处理?
  5. 机架服务器最多有多少cpu,多核心更有劲 四款优秀2U机架服务器推荐
  6. 计算机正在更新,计算机打开时“致命错误c0000034正在应用更新”的解决方案
  7. 5G+智能制造十大典型应用场景 | 附下载
  8. 这两天不爽——公车上被误认为色狼、游泳撞破上嘴唇
  9. 文件下载FileDownloader
  10. 系统分析师历年真题免费分享