微信机器人的作用
- 方便用户上传采购需求文件,用户的采购需求文件一般是在PC端编辑的,如果使用小程序则比较麻烦
- 发挥微信群的作用,使用微信机器人更方便管理微信群
- 微信聊天机器人,与用户智能聊天,解决用户的部分需求,充当客服的作用(后期实现)
微信机器人技术原理
- 进程间通信:与微信进程进行通信,具体的进程间通信方式有多种。例如:共享内存,管道
- 监听器与处理器:以守护进程的方式启动充当服务器,监听微信发送的消息并做处理
技术框架选择
- 使用python编程语言,python语言的优点是用在爬虫,大数据,人工智能方便,相关加框丰富
- 使用itchat作为微信机器人技术框架,itchat使用的开发者众多,文档丰富,github排名第一
如何在linux服务器控制台登录微信机器人
- 下载二维码至控制台并使用手机微信扫描登录二维码,itchat框架内部已经是在在控制台扫描的功能
如何验证用户
- 使用手机号码作为药工汇唯一对应用户,故在用户第一次上传文件时,需要用户输入手机号码
- 使用会话管理判断上下文的用户
微信个人号的注册
- 注册一个微信个人号作为机器人微信号,微信名为药工汇,将小型加工商加为机器人微信号的好友;
- 使用机器人微信号建立一个微信群,群名为药工汇服务群,将小型加工商拉进此微信群
- 注册微信个人号需要手机短信的验证,所有需要先注册一个手机号,此手机号只需有短信功能,无需流量,月租越少越好,需要非常清楚的知道协议,发票要有
- 联通的米粉卡,月租5元,短信0.1元/条, 电话0.1元/分钟, 流量1元/每天/1G, 3元封顶; 申请发票为月结发票,使用联通APP进行自定义交费,不能选择固定金额交费; 注册米粉卡手机号的途径为在微信中收缩米粉卡助手,关注公众号,点击申请,填写地址,然后邮寄;
- 联通人工客服电话为10010接通后按0进入人工服务
- 可以使用QQ号或者邮箱登录微信
微信机器人应用的特性
- 监听微信好友及群好友的发送的文件和图片并下载
- 自动上传文件和图片到阿里云服务器
- 发送文本消息给微信机器人验证微信机器人是否正常运行
- 获取微信好友信息,验证微信用户是否为药商汇用户
- 文件上传相关日志
运维:将代码部署到测试环境
- 将代码上传到码云
git init git add . git commit -m "first commit" git remote add origin https://gitee.com/chggit_liudaoqiang/itchat_app.git git push -u origin master
- 从码云克隆代码到测试或生产服务器
cd /data/chgg git clone https://gitee.com/chggit_liudaoqiang/itchat_app.git
- 进入项目虚拟环境
cd /data/chgg/itchat_app source venv/Scripts/activate
- 在测试环境安装python3(linux服务器上的python版本为2.7)
从python官网下载python3.6.6
cd ~ wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
解压python3.6.6压缩包
tar -zxvf Python-3.6.6.tgz
配置源代码文件
cd ~/Python-3.6.6 ./configure
安装
vim Makefile # 将 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes 中的3改为2
make
make install
问题:python3make到unicodeobject.c就不再继续运行,
gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/unicodeobject.o Objects/unicodeobject.c
执行到这里就不再向下执行
解决办法为执行configure命令后将Makefile文件中的 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes 中的3改为2
即-DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes
- 安装阿里云OSS存储对象SDK
cd /data/chgg/itchat_app pip3 install oss2
- 安装微信机器人itchat包
pip3 install itchat
- 安装数据库操作的库
pip3 install pymysql
- 检查应用程序相关文件
检查是否存在文件存放文件夹download
# 检查/data/chgg/itchat_app目录下是否存在目录downlaod; 如果没有则创建该目录 mkdir -p download
chmod 777 download
检查是否存在日志存放文件夹logs
# 检查/data/chgg/itchat_app目录下是否存在目录logs; 如果没有则创建该目录 mkdir -p logs chmod 777 logs
将调试状态改为生产状态
Debug = True # 改为 Debug = False
修改阿里云oss的账号配置
修改数据库的账号配置
- 启动应用程序
nohup python3 server.py