JAVA图灵 自动回复_实现微信公众号聊天机器人,自动回复——nodejs+图灵机器人...

登录微信测试号:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

设置开发接口:

72c65c6f7ea25895e4b12f2077fd221d

填写url地址和token,url是在微信公众号发送消息的时候调用的接口地址

步骤:

1、注册图灵机器人获取apiKey,官网:http://www.tuling123.com/

2、使用nodejs框架express开发服务器端接口

1)安装nodejs

2)安装express脚手架npm install -g express-generator@43)初始化项目express myRobot4)安装依赖cd myRobot && npm install5)添加相关其他支持包 npm install body-parser cookie-parser debug express jade morgan querystring serve-favicon sha1 xml2js --save6)修改入口文件(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 = '3001';

function checkSignature(req) {

// 获取校验参数

var signature = req.query.signature;

var timestamp = req.query.timestamp;

var nonce = req.query.nonce;

// 此处为实验分配了一个 token,也可以修改为自己的 token

var token = 'FUWMsvAy';

// 按照字典排序

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":'64603a10addd410c871c002c3d4f23d6', // 可以填入自己申请的机器人的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 = "" +

"" +

"" +

"" +

"" + time + "" +

"" +

"" +

"";

res.type('xml');

res.send(output);

}

// Start

app.post('/', function(req, res) {

handler(req, res);

});

module.exports = app;启动服务node ./bin/www关注这个微信测试号——》点击输入框——》输入“ 深圳天气 ”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值