目前大多数公司中的消息通知使用邮件、短信、钉钉、企业微信等等,而微信或者QQ这种使用量较大的工具,通知和管理机制并不完善。特别是很多利用微信来进行客户管理沟通的人,例如我,只好借助微信机器人来实现通知和管理功能。
本篇文章主要讨论微信机器人的开发经验。微信机器人的功能需求很简单,业务代码贼好撸,但是如何和微信交互呢,如何取到微信数据调用相关聊天接口呢,具体分为以下几种技术类型:
1.微信Web接口
17年后微信都不支持了,不过还是有一些牛×的star 都是过W star的项目,可惜荒废了。
2.手机Xposed和电脑 PC
都是HOOK技术,是需要懂汇编,懂c或c++才可以开发自定义,重点是还需要公司去买采购刷机的手机和windows服务器,一个号成本几千块,条件不允许啊!!
3.E云管家方案
这个方案目前可使用的内容上来说,是功能最全的,而且安全性相比其他方案更好,安全性、稳定性比较优秀。难点是,目前并没有被公开,自己分析代价很大,需要企业合作。具体可以自己百度 “E 云管家”看看
我用的就是这种,,效率很高,奈何是商业合作不开源需要花钱,不过也好,花了钱的产品有人维护。
请求URL:
http://域名地址/localIPadLogin
请求方式:
- POST
请求头Headers:
- Content-Type:application/json
- Authorization:login接口返回
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
wcId | 是 | string | 微信原始id (首次登录平台的号传"",掉线后必须传值,否则会频繁掉线!!!) 第三步会返回此字段,记得入库保存 |
ttuid | 是 | string | 用户需安装app/pc,且上传app/pc中的字段 若是开发者公司有app/pc也可直接集成sdk至app/pc中,可以做到无需用户上传,且无需下载我司提供的软件 APP下载地址 Window/Mac客户端下载地址 |
小提示:
-
本方式需要用户下载app/exe获取值并上传到接口,方可取码(虽然繁琐,但是建议使用本接口取码)
-
开发者将本接口返回的二维码让用户去扫码,手机扫码结束后,需要调用第三步接口才会登录成功,且手机顶部显示ipad已登录 ,
返回数据:
参数名 | 类型 | 说明 | |
---|---|---|---|
code | string | 1000成功,1001失败 | |
msg | string | 反馈信息 | |
data | |||
wId | string | 登录实例标识 (本值非固定的,每次重新登录会返回新的,数据库记得实时更新wid) | |
qrCodeUrl | string | 扫码登录地址 |
请求参数示例
<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f8f9"><span style="color:black"><code><span style="color:#999999">{</span>
<span style="color:#990055">"wcId"</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">:</span></span> <span style="color:#669900">"wxid_wl9qchkanp9u22"</span><span style="color:#999999">,</span>
<span style="color:#990055">"ttuid"</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">:</span></span> <span style="color:#669900">"fb24efa2-4c97-474a-8022-59f60820502c"</span>
<span style="color:#999999">}</span></code></span></span></span></span>
成功返回示例
<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f8f9"><span style="color:black"><code><span style="color:#999999">{</span>
<span style="color:#990055">"message"</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">:</span></span> <span style="color:#669900">"登录成功"</span><span style="color:#999999">,</span>
<span style="color:#990055">"code"</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">:</span></span> <span style="color:#669900">"1000"</span><span style="color:#999999">,</span>
<span style="color:#990055">"data"</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">:</span></span> <span style="color:#999999">{</span>
<span style="color:#990055">"wId"</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">:</span></span> <span style="color:#669900">"0000016e-63ef-3a9c-0001-ed3311628ef4"</span><span style="color:#999999">,</span>
<span style="color:#990055">"qrCodeUrl"</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">:</span></span> <span style="color:#669900">"http://127.0.0.1:18081/1573634652963-500000.png"</span>
<span style="color:#999999">}</span>
<span style="color:#999999">}</span></code></span></span></span></span>
错误返回示例
<span style="color:#333333"><span style="background-color:#ffffff"><span style="background-color:#f7f8f9"><span style="color:black"><code><span style="color:#999999">{</span>
<span style="color:#990055">"message"</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">:</span></span> <span style="color:#669900">"用户名或密码错误"</span><span style="color:#999999">,</span>
<span style="color:#990055">"code"</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">:</span></span> <span style="color:#669900">"1001"</span><span style="color:#999999">,</span>
<span style="color:#990055">"data"</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">:</span></span> <span style="color:#0077aa">null</span>
<span style="color:#999999">}</span></code></span></span></span></span>