wechat4u.js
wechat4u@0.5.x更新了大量API,增强了稳定性
测试服务器wechat4u.duapp.com
具有文本表情自动回复,监控,群发功能
安装使用
npm install --save wechat4u@latest
const Wechat = let bot = botstart// 或使用核心API// const WechatCore = require('wechat4u/lib/core')
开发测试
git clone https://github.com/nodeWechat/wechat4u.git
cd wechat4u
npm install
npm run example // web服务器模式
npm run core // 命令行模式
npm run compile // babel编译
使用范例
node run-core.js
逻辑见代码,简明完整
实例属性
所有属性均只读
bot.PROP
保持登录状态的必要信息
bot.CONF
配置信息,包括当前服务器地址,API路径和一些常量
程序中需要使用CONF中的常量来判断当前状态的新消息类型
botstate == botCONFSTATEinit // 初始化状态botstate == botCONFSTATEuuid // 已获取 UUIDbotstate == botCONFSTATElogin // 已登录botstate == botCONFSTATElogout // 已退出登录msgMsgType == botCONFMSGTYPE_TEXT // 文本消息msgMsgType == botCONFMSGTYPE_IMAGE // 图片消息msgMsgType == botCONFMSGTYPE_VOICE // 语音消息msgMsgType == botCONFMSGTYPE_EMOTICON // 自定义表情消息msgMsgType == botCONFMSGTYPE_MICROVIDEO // 小视频消息msgMsgType == botCONFMSGTYPE_VIDEO // 视频消息
bot.state
当前状态
bot.user
当前登录用户信息
bot.contacts
所有联系人,包括通讯录联系人,近期联系群,公众号
key为联系人UserName,UserName是本次登录时每个联系人的UUID,不过下次登录会改变
value为Contact
对象,具体属性方法见src/interface/contact.js
msg
登录后接受到的所有消息
msg为Message
对象,具体属性方法见src/interface/message.js
实例API
bot.start()
启动实例,登录和保持同步
调用该方法后,通过监听事件来处理消息
bot.stop()
停止实例,退出登录
调用该方法后,通过监听logout
事件来登出
以下方法均返回Promise
bot.sendText(msgString, toUserName)
发送文本消息,可以包含emoji(😒)和QQ表情([坏笑])
bot.uploadMedia(Stream | File)
上传媒体文件,返回:
name: name size: size ext: ext mediatype: mediatype mediaId: mediaId
bot.sendPic(mediaId, toUserName)
发送图片,mediaId为uploadMedia返回的mediaId
bot
bot.sendEmoticon(md5 | mediaId, toUserName)
发送表情,可是是表情的MD5或者uploadMedia返回的mediaId
表情的MD5,可以自己计算但是可能不存在在微信服务器中,也可以从微信返回的表情消息中获得
bot.sendVideo(mediaId, toUserName)
发送视频
bot.sendDoc(mediaId, name, size, ext, toUserName)
以应用卡片的形式发送文件,可以通过这个API发送语音
bot.getHeadImg(HeadImgUrl)
获取联系人头像
bot
bot.getMsgImg(MsgId)
获取图片或表情
bot
bot.getVoice(MsgId)
获取语音
bot.getVideo(MsgId)
获取小视频或视频
实例事件
uuid
得到uuid,之后可以构造二维码或从微信服务器取得二维码
bot
user-avatar
手机扫描后可以得到登录用户头像的Data URL
login
手机确认登录
logout
成功登出
contacts-updated
联系人更新,可得到已更新的联系人列表
message
所有通过同步得到的消息,通过msg.MsgType
判断消息类型
bot
error
Contact对象和Message对象
每个contact,继承自 interface/contact,除原本 json 外,扩展以下属性:
contactAvatarUrl // 处理过的头像地址contactisSelf // 是否是登录用户本人 contactcontact
此外,wechat4u 在实例上提供 Contact 作为联系人的通用接口,扩展以下属性:
wechatcontactwechatcontactwechatcontact wechatContactwechatContact
每个msg 对象继承自 interface/message,出原本 json 外,具有以下属性:
messageisSendBySelf // 是否是本人发送 messagemessage // 获取所属对话的联系人 UserNamemessage // 获取形如 12:00 的时间戳信息
相关项目
关于微信网页端机器人的实现,已经有大量的轮子了。感谢各位大神!(排名不分先后。。收录的肯定也不齐。。)
- Python2 的 WeixinBot
- QT 的 QWX
- Node,可能会写成uProxy插件的 uProxy_wechat
- Node,可在shell中直接运行的 wechat-user-bot
- Python3 的 wechat_robot
- 开放协议 支持 QQ&微信 的 wxagent
- 在微信网页版和 IRC 间搭建通道支持 IRC 操作的 wechatircd
- Chrome 插件版的微信机器人
关于微信网页端的接口说明,也有好几篇分析的很厉害的文章。
好了,差不多就这些资料了。如果想要开发个自己的,那就开工吧!