开局先上效果图


为什么要做?
1.开发人员对于崩溃的数据,开发质量不够关心.
2.开发人员对于数据查看还得自己主动打开网页去后台查看,嫌麻烦.
3.开发人员*****
为什么选择 Crashlytics 平台?而不是友盟,Bugly等国内平台
1.因为这是个谷歌旗下的一个服务,所以后续的更新与稳定相关不用担心.
2.友盟不支持 dsym 脚本自动化上传.同时友盟崩溃统计并非友盟主要核心业务.
3.Bugly属于KPI项目,已经很久没有维护更新了.(懂的都懂)
4.Crashlytics 服务默认支持 Slack 转发(主要原因)
搭建前期准备
- 一台云服务器(本次使用镜像服务器版本是:Ubuntu Server 18.04.1 LTS 64位)
- 一个已解析的域名(国内请备案,可使用云服务器公网IP,但最好还是使是域名,IP在国内容易被封)
- 准备一个企业微信机器人的Webhook地址
- 强烈建议先整体看一遍文章后再对着内容搭建.
1.开始搭建基础服务
云服务器搭建nginx环境
更新软件源
sudo apt update安装nginx
sudo apt install nginx检查nginx服务是否启动(输入服务器的公网IP地址到浏览器即可,正常结果如下:)

2. Slack App创建
创建工作空间:slack.com/create#emai…
进入Slack 页面,创建频道(方便整个Crash信息整合到一个频道内查看,这里我命名 crashlytics)

创建好频道后,我们在创建一个App
api.slack.com/apps

打开Webhooks

添加webhook地址

选择我们开始创建的频道

创建成功后之前添加的位置会一个Webhook的URL,这里记录下来,后面会用到.

同时记录下 Bot User OAuth Access Token

3. Firebase 添加 Slack 服务
安装Slack服务,在项目设置 --> 集成 --> slack 安装

输入内容后验证并保存.

如果添加成功后,可以点击 发送测试消息

正常能收到的情况下,在频道内会有对应的test消息(如下图)

4. 打通 slack 服务与 企业微信 的通道
- 官方Python流程: github.com/slackapi/py…
好了,文章到此就结束了.

(小声哔哔)上面都有这么详细的,下面当然不能就此打住.
download 到云服务器.
git clone https://github.com/Formerly/SlackWechatBot.git该脚本内容针对官方文档的内容做了调整与修改,可在后面直接使用.里面涉及到的bot token 与signing secret 已失效.
cd 到 仓库下 SlackWechatBot
apt install python3-pip
pip3 install -r requirements.txt运行脚本内容
python3 app.py关键字错误问题汇总:
KeyError: 'SLACK_SIGNING_SECRET'

如上图获取到对应的值, 执行
export SLACK_SIGNING_SECRET='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
KeyError: 'SLACK_BOT_TOKEN'

如上图获取到对应的值, 执行:
export SLACK_BOT_TOKEN='xoxb-XXXXXXXXXXXX-xxxxxxxxxxxx-XXXXXXXXXXXXXXXXXXXXXXXX'
KeyError: 'WECHAT_BOT_WEBHOOK'
设置企业微信机器人Webhook地址,执行:
export WECHAT_BOT_WEBHOOK='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxx'
正常执行 python3 app.py 结果如下图:

那么整个服务就成功一大半了.我们这里先 CTRL + C 结束掉内容.先配置我们的ng服务
vim /etc/nginx/nginx.conf
在 http {server { listen 80;
server_name xxx.com;
access_log logs/slack-report.access.log main;
location /slack/event {
proxy_pass http://127.0.0.1:3000;
}
}}
内添加以上代码. server_name 为自己的域名
然后 esc, wq 二连保存一下刷新下Ng服务
nginx -s reload启用服务器80端口
sudo ufw allow 80访问上面配置的域名内容服务,如果出现以下响应,则代表ng服务离成功很近了.

接下来我们重新启动下之前的 app.py 服务

回到我们的 slack App 服务配置 ,订阅消息

如果域名校验通过,则默认会是绿色的√(下图所示),如果报错,请检查域名是否报错.

添加些订阅事件(不然就收不到内容的噢)


5.测试一波
回到我们的集成服务里面,发送测试消息.

好了,这会企业微信就能收到Test消息内容了

收尾
我们把我们的脚本放到后台执行,该内容执行同时会有对应的log输出,你可以在有一定崩溃率后,对app.py 脚本内容 进行更新与修改迭代.更符合你们需要的内容.(因对Python语言这一块应用还不熟.有大神愿意 pull request 提交代码帮助改进当然更佳.)
nohup python3 -u app.py > app.log 2>&1 &
查看运行是否成功(观察是否有app.py进程运行)
ps aux |grep app
附上大佬提供的一些常用服务器维护命令(毕竟我还只是个小开发)

查看当前运行的 app相关的进程
ps aux |grep app
结束指定进程
kill -9 进程ID
后台运行程序 与 日志查看
nohup python3 app.py &
tail -f nohup.out
查看端口打开
ss -anlt
切换到root权限(如当前云服务器操作没有权限的时候,请执行这个)
sudo -i
如遇到 pip3 install 未找到库相关错误.可将下面的代码执行
pip3 install slackeventsapi
pip3 install slackclient
pip3 install slack
pip3 install flask