使用之前,修改 config.py 里的相关配置(已经用 TODO 标出) 建议结合本文档和单元测试一起阅读
这是目前唯一的实用功能。 细分如下:
- 监听打开对话框事件,发送欢迎消息
- 检测关键词,向用户二次确认后,提 crm bug 到 JIRA 系统
- 向用户返回结果(成功或失败的提示)
- 如果提交成功,向机器人全员通知群,发一条卡片消息,包含 bug 的摘要。点击卡片可以跳转 JIRA 任务详情页面
除了跟它聊天斗嘴,还可以查天气,讲笑话。
语言是 Python3,服务器框架为 Flask。
- 日志系统为 python 内置的日志模块
- 加密/解密:微信官方提供的工具类
- XML 解析:python 内置模块
- 企业微信交互:微信官方提供的 api 封装类
- 网络请求:requests 库
- 提 bug:参考 crm 的 Java 代码,分析出给 JIRA 提 bug 的 api,然后用 requests 库发送 http 请求
- 闲聊:图灵机器人接口
- 把项目源码 clone 到本地
- 安装 Python3,安装相关依赖包(
pip install -r requirements.txt),安装 PyCharm - 用 PyCharm 打开 wxbot 目录
- 运行
run_server.py,启动服务器,一切就绪(本地运行意义不大) - 阅读或运行已经写好的单元测试,快速熟悉代码
- 将整个项目传到服务器上(压缩,scp上传,再解压)
- 安装 Python3(参考http://baimoz.me/1687/),安装相关依赖包(
pip install -r requirements.txt)(pip 可能需要改为 pip3,具体看服务器上是怎么配置的) - 检查
config.py中的配置项 - 运行
run_server.sh,启动服务器(加了一层封装,内部还是执行run_server.py) - 浏览器访问服务器地址,检查是否启动成功
- 初次使用,或者迁移服务器,需要配置企业微信后台
nohup ./run_server.sh &
- 查看后台进程,找到 wxbot 对应的进程号(pid)
kill {pid}
参考:
#!/bin/bash
fname=wxbot.tar.gz
dname=wxbot
rm $fname
tar -cvzf $fname $dname
scp $fname root@xx.xxx.xx.xx:~/ # 替换为真实的 ip 地址服务器上的解压命令为 tar -xvzf wxbot.tar.gz。
统一修改 config.py。改完之后,重新运行一下。
在 run_server.py 中修改。注意要同时修改企业微信后台的地址。
- 扩展 jiraapi 包的功能(如果是 crm 已经有的功能,可以跟信息组要一下 java 文件,看接口怎么调用的)。
- 从
WxBot.make_response入手,添加业务功能
- 研究企业微信的 api(https://work.weixin.qq.com/api/doc#90000/90135/90664)
- 从
WxBot.make_response入手,增加相应逻辑
- 优先看 wxbot.log 文件(运行过程中会生成)。
- 本地用 PyCharm 调试,调好之后上传到服务器。杀掉原来的服务,并删除老的文件夹。再次启动服务器。
- 如果本地调试不方便的,在代码里加 log,再调试
- 并发风险(目前都是用的静态方法和类方法)
- 未使用正式的服务器(Flask 内置服务器,性能不好,只适合调试用。但是运行至今也没发现啥问题,所以懒得改了。后期可能需要切换到正式的服务器(cgi + 反代啥的,Flask 官网有教程))
- 其他的还没想到,碰到再说吧,超出新手村范围了

