我已经放到github上了: https://githubcom/thank037/wechat-robot
关于实现, 发现现有很多机器人都有API, 提供第三方接入
当然微信和QQ也支持
通过微信公众号接入机器人或关注机器人好友都可以快速实现与机器人聊天
对于这种接入, 我还试着去注册了微信公众号 发现并不是我想要的
首先, 不想让机器人作为一个公众号, 我希望他的消息出现在好友对话列表, 而非订阅号列表中
而且要支持群聊!
其次, 我希望能作为一个开发者, 能够自由的为这个机器人写出想要的功能
看了网上的一些参考后, 不得不说, Python的版本很多, 而且功能普遍要比Java的完善
Java版本的还有部分bug 这里我参考了这个版本
除了修正部分bug之外, 根据自己想法, 又加入了如下:
其实这里与机器人的对话并不是难得, 因为已经有现成的API提供
主要是需要研究微信WEB协议与API
后面还有一些步骤,麻烦不想写了啊
大致步骤是
相关的通信过程和API网上有很多 在开头参考中有推荐
为了方便开发, 加几个附注:
在同步消息检查的API中: https://webpush2weixinqqcom/cgi-bin/mmwebwx-bin/synccheck
为了模拟实时消息的更新, 在程序中轮询2秒检查一次, 此接口的返回值如下:
所以当 selector=2/6 时, 我们就可以进行消息处理
这里selector有个很奇怪的返回值, 就是 3 !
我翻阅各种API也没找到为什么有时会返回 3 导致程序死掉
在发送消息之前, 需要获取同步消息
URL: https://wxqqcom/cgi-bin/mmwebwx-bin/webwxsyncsid=xxx&skey=xxx&pass_ticket=xxx
返回值包括了消息发送方, 接收方, 消息内容, 消息类型
消息来源的账号类型大致有这几类:
来自个人: 以@开头
来自群聊: 以@@开头
来自公众号/服务号: 以@开头,VerifyFlag & 8 != 0
来自特殊账号:
关于图灵机器人的调用, 去官网注册一个就可以 so easy!
在调试功能时, 可以加上log, 查看同步连接信息和消息
附上几张和机器人的聊天:
微信机器人是指通过微信公众平台提供的接口,通过一定的数据逻辑和数据库实现在微信平台上的智能对话。简单的机器人有天气查询、美食查询等,高级点有陪聊机器人、对话机器人、智能查询等。微信机器人支持的功能有智能对话和及时问答等。
微信硬件平台和QQ物联现在都还是宣传噱头大于实际价值,有余力或者求关注的品牌可以尝试,但不要指望这个平台极大的提升产品的用户体验。
微信官方宣传的和微信对接的价值:
连接。通过AirSync、Airkiss方便的连接智能硬件设备。这些技术厂家不靠微信自己也能找到,比如Wi-Fi的Smartconfig技术。
排行榜。同一类型的微信硬件用户可以一起排行,增加用户活跃度。这个还是有价值的。
电视弹幕。智能电视,微信上发表评论,电视上飞弹幕。这个算是微信有差异化能力的,但大部分用户估计也就是尝试一下而已。
微信购买。在微信上直接购买设备,这个对微信的意义远大于对厂商的意义。
用户可以少装几个APP,用微信搞定一切。首先,微信的功能不可能覆盖厂商自己APP的所有功能,尤其是那些体现差异化的功能。其次,少装了几个APP,却要多关注一堆服务号。
提供第三方软件资源和供应链资源,目前提供的方案的原始出发点是企业自身利益,至于用户痛点需求还是比较牵强。
分析目的
有需求。很多公司自发都在考虑和实施微信对接硬件的项目,市场上有庞大的潜在需求。
智能硬件是一个新兴产业,未来的前景非常广阔,通过开放平台的形式是进入该行业的一个很好的切入点。
接口支持上会更完善,能够让厂商提供更多,更完善的功能。
能够为智能设备提供社交化的元素,有利于品牌的传播。
智能设备大部分通过APP的形式对接,如果客户要对接不同的智能硬件,有可能要下载好几个APP,如果现在统一通过微信能实现的话无疑方便多了。而厂商也能够通过微信庞大的用户群培育自己的用户。