微信公共帐号 是个很好玩的东西,因为他们最近开放了自动回复消息的接口,所以就更好玩了……
因为别的语言不会写,就用 JavaScript 写了个自动回复的小脚本,后来想让他变得更智能,就慢慢扩展成了这样一个还算方便使用的机器人……
代码公开在:https://github.com/ktmud/weixin-robot
不涉及任何算法和人工智能,也不需要数据库,只是一个单纯地类似于 url 路由的东西,只不过这里的 “url” 是用户说的话而已。
理论上来说,这东西可以并不只服务于微信,只要约定好消息来往的格式,也可以很方便地搭建起一个可以自动回复的客服系统。因为它是因微信公众平台而生的,故姑且还是叫 weixin-robot 。
大家可以尝试用微信关注“豆瓣同城”公共帐号试一下效果:
非常开心找到这样有用的东西 我是一个node的纯新手 想使用您的这个程序
安装npm i weixin-robot后 我需要怎样做 让他监听我的80呢? node \node_modules\weixin-robot\examples\app.js?
实在抱歉提这样的问题 纯新手 请谅解。(网吧技术员 刚接触编程)
modules已安装 用app.js可以成功收取发送
感谢您对我的帮助 问下跟程序无关的~~ 80已经更改 token 我更改为自己的 或者不更改 都无法再公众平台进行验证成功 我向腾讯的URL是带有端口号的 不知道会不会因此产生影响 导致无法token验证成功 我的外网IP 80被封掉了 期望得到您的回答。
已经通过域名转发的方式搞定了 通讯问题
使用内网机器3000映射到了服务器3000上 然后服务器绑定根域名
A记录 wx1.superjue.net 通过隐藏域名转发到www.superjue.net:3000上
本地webot可以连接上 但是无论输入什么只能回复‘ 听不懂你说什么’ 即error 400
但是公众平台始终无法token认证
通过域名隐藏转发 把非80端口转成了80端口 在公众平台验证的时候 通过本地抓包获取到腾讯向我非80端口发送: name=%E5%BC%A0%E5%8B%89&mobile=186065XXXXX&email=zhengzha1234%40hotmail.com&url=http%3A%2F%2Fwx1.superjue.net&token=XXXXX&ajax=1
手动测试到返回为
{ "r": 403, "msg": "Where is your key?" }
你本地抓的…… 是编辑后台点保存时,腾讯向他们服务器提交的信息吧…… =。=
微信服务器发给你的请求应该是这种格式的:
"GET /?signature=29d1a5e85dcdafcb6bd660c55ee6f6f81afa&echostr=5814915060441739089×tamp=1353903953&nonce=1353890419 HTTP/1.0"
已经上传。地址:http://myzhbit.cloudfoundry.com/
一直无法验证Token。
代理部分改为
//微信后台只允许 80 端口,你可能需要自己做一层 proxy
//app.listen(3000, '127.0.0.1’, function(){
//log(“WeBot Start… God bless love…”);
//});
app.listen(80);
if(!process.env.DEBUG){
console.log("use SET DEBUG=webot.*
to got debug info. current env is: %s ", process.env.DEBUG);
}
还是不行。。。请问要怎么设置代理?