1. 程式人生 > >node微信自動回復

node微信自動回復

設置 on() ava create sub txt round ria case

微信號:laoli4316

let express = require(express),
xmlTojs = require(xml2js).parseString;

let app = express();

app.use(/test,function(req,res){
    let buffer = [];
    req.on(data,function(data){
        buffer.push(data);
    });
    req.on(end,function(){
        let msgXml = Buffer.concat(buffer).toString(
utf-8); xmlTojs(msgXml,{explicitArray:false},function(err,result){ if(!err){ result = result.xml; console.log(result); let fromUser = result.FromUserName, toUser = result.ToUserName; if(result.MsgType.toLowerCase()==
event){ switch(result.Event.toLowerCase()){ case subscribe: res.send(msg.txtMsg(fromUser,toUser,歡迎您(+fromUser+)的關註!)); break; } }else if(result.MsgType.toLowerCase()==
text){ switch(result.Content){ case 1: res.send(msg.txtMsg(fromUser,toUser,你個垃圾,賤貨)); break; case 2: res.send(msg.txtMsg(fromUser,toUser,真尼瑪操蛋)); break; case zs: let contentArr = [ { Title: you are the beach, Description: 你就是個逼!, PicUrl: http://pic.qiantucdn.com/58pic/15/24/50/43Q58PICkj4_1024.jpg!/fw/780/watermark/url/L3dhdGVybWFyay12MS40LnBuZw==/align/center, Url: http://maoriaty.top }, { Title: 歡迎你個這條母狗, Description: common baby, PicUrl: http://g.hiphotos.baidu.com/image/pic/item/023b5bb5c9ea15ce80434db0bc003af33b87b2de.jpg, Url: http://maoriaty.top } ] res.send(msg.graphicMsg(fromUser,toUser,contentArr)); break; default : res.send(msg.txtMsg(fromUser,toUser,格老子的)); break; } } }else{ console.log(err); } }); }); }) let msg = { txtMsg: function(fromUser,toUser,content){ let resXml = "<xml>"+ "<ToUserName><![CDATA["+ fromUser +"]]></ToUserName>"+ "<FromUserName><![CDATA["+ toUser +"]]></FromUserName>"+ "<CreateTime>"+ new Date().getTime() +"</CreateTime>"+ "<MsgType><![CDATA[text]]></MsgType>"+ "<Content><![CDATA["+ content +"]]></Content></xml>"; return resXml; }, graphicMsg: function(fromUser,toUser,contentArr){ let xmlContent = "<xml><ToUserName><![CDATA["+ fromUser +"]]></ToUserName>"; xmlContent += "<FromUserName><![CDATA["+ toUser +"]]></FromUserName>"; xmlContent += "<CreateTime>"+ new Date().getTime() +"</CreateTime>"; xmlContent += "<MsgType><![CDATA[news]]></MsgType>"; xmlContent += "<ArticleCount>"+contentArr.length+"</ArticleCount>"; xmlContent += "<Articles>"; contentArr.map(function(item,index){ xmlContent+="<item>"; xmlContent+="<Title><![CDATA["+ item.Title +"]]></Title>"; xmlContent+="<Description><![CDATA["+ item.Description +"]]></Description>"; xmlContent+="<PicUrl><![CDATA["+ item.PicUrl +"]]></PicUrl>"; xmlContent+="<Url><![CDATA["+ item.Url +"]]></Url>"; xmlContent+="</item>"; }); xmlContent += "</Articles></xml>"; return xmlContent; } } let server = app.listen(8888,function(){ let port = server.address().port; console.log("port === " + port); })

java返回時需註意設置編碼utf-8,不然中文亂碼

 @RequestMapping(value = "/",produces = "text/xml;charset=utf-8")

let express = require(‘express‘), xmlTojs = require(‘xml2js‘).parseString;
let app = express();
app.use(‘/test‘,function(req,res){ let buffer = []; req.on(‘data‘,function(data){ buffer.push(data); }); req.on(‘end‘,function(){ let msgXml = Buffer.concat(buffer).toString(‘utf-8‘); xmlTojs(msgXml,{explicitArray:false},function(err,result){ if(!err){ result = result.xml; console.log(result); let fromUser = result.FromUserName, toUser = result.ToUserName; if(result.MsgType.toLowerCase()==‘event‘){ switch(result.Event.toLowerCase()){ case ‘subscribe‘: res.send(msg.txtMsg(fromUser,toUser,‘歡迎您(‘+fromUser+‘)的關註!‘)); break; } }else if(result.MsgType.toLowerCase()==‘text‘){ switch(result.Content){ case ‘1‘: res.send(msg.txtMsg(fromUser,toUser,‘你個垃圾,賤貨‘)); break; case ‘2‘: res.send(msg.txtMsg(fromUser,toUser,‘真尼瑪操蛋‘)); break; case ‘zs‘: let contentArr = [ { Title: ‘you are the beach‘, Description: ‘你就是個逼!‘, PicUrl: ‘http://pic.qiantucdn.com/58pic/15/24/50/43Q58PICkj4_1024.jpg!/fw/780/watermark/url/L3dhdGVybWFyay12MS40LnBuZw==/align/center‘, Url: ‘http://maoriaty.top‘ }, { Title: ‘歡迎你個這條母狗‘, Description: ‘common baby‘, PicUrl: ‘http://g.hiphotos.baidu.com/image/pic/item/023b5bb5c9ea15ce80434db0bc003af33b87b2de.jpg‘, Url: ‘http://maoriaty.top‘ } ] res.send(msg.graphicMsg(fromUser,toUser,contentArr)); break; default : res.send(msg.txtMsg(fromUser,toUser,‘格老子的‘)); break; } } }else{ console.log(err); } }); }); }) let msg = { ‘txtMsg‘: function(fromUser,toUser,content){ let resXml = "<xml>"+ "<ToUserName><![CDATA["+ fromUser +"]]></ToUserName>"+ "<FromUserName><![CDATA["+ toUser +"]]></FromUserName>"+ "<CreateTime>"+ new Date().getTime() +"</CreateTime>"+ "<MsgType><![CDATA[text]]></MsgType>"+ "<Content><![CDATA["+ content +"]]></Content></xml>"; return resXml; }, ‘graphicMsg‘: function(fromUser,toUser,contentArr){ let xmlContent = "<xml><ToUserName><![CDATA["+ fromUser +"]]></ToUserName>"; xmlContent += "<FromUserName><![CDATA["+ toUser +"]]></FromUserName>"; xmlContent += "<CreateTime>"+ new Date().getTime() +"</CreateTime>"; xmlContent += "<MsgType><![CDATA[news]]></MsgType>"; xmlContent += "<ArticleCount>"+contentArr.length+"</ArticleCount>"; xmlContent += "<Articles>"; contentArr.map(function(item,index){ xmlContent+="<item>"; xmlContent+="<Title><![CDATA["+ item.Title +"]]></Title>"; xmlContent+="<Description><![CDATA["+ item.Description +"]]></Description>"; xmlContent+="<PicUrl><![CDATA["+ item.PicUrl +"]]></PicUrl>"; xmlContent+="<Url><![CDATA["+ item.Url +"]]></Url>"; xmlContent+="</item>"; }); xmlContent += "</Articles></xml>"; return xmlContent; } }
let server = app.listen(‘8888‘,function(){ let port = server.address().port; console.log("port === " + port); })

node微信自動回復