大家好,我是明哥。最近,我成为了阿里云的推广大使,带了200位读者免费领取阿里云的服务器。大家都说“真香”。事实上,第一期活动的组织工作还存在很多问题,主要是流程上的问题。为了让整个流程更加自动化,操作更加顺畅,我利用公众号的开发能力,将整个流程融入到公众号消息的自助查询中。其中一个步骤是确认用户的购买资格。只要在我的公众号后台回复对应的阿里云ID,我就会在阿里云后台查询相关数据,但是阿里云的cookie会在几小时内过期。这有点尴尬。后台的爬虫都失效了,参与的读者还在查,查,找不相关的数据。这时候,实时告警就显得非常重要了。常见的报警方式有:邮件、电话、短信、微信。短信和电话一般都是收费的(如果有免费的可以评论分享),邮件就没那么及时了,所以最后还是选择了微信通知。这里说的微信是企业微信,我之前注册的是个体经营许可证,所以可以很方便的注册自己的企业微信。1、新建应用,登录网页版微信(https://work.weixin.qq.com/),点击应用管理->应用->创建应用上传应用的logo,输入应用名称,然后选择可见范围,成功创建一个报警应用2.获取Secret使用Python发送报警请求。其实获取Token只有两个接口:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={secret}发送请求:https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}可以看到最重要的是Corpid和secret:Corpid:唯一标识你的企业机密:应用级密钥,程序用它知道你要发哪个公司的申请corpid。可以通过我的公司->企业信息获取,但获取秘钥相对麻烦。点击创建应用,点击查看密文,然后点击发送后发送到您的企业微信。最后在下面的常量中填写corpid和secret。importjsonimportdatetimeimportrequestsCORP_ID=""SECRET=""classWeChatPub:s=requests.session()def__init__(self):self.token=self.get_token()defget_token(self):url=f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CORP_ID}&corpsecret={SECRET}"rep=self.s.get(url)ifrep.status_code!=200:print("requestfailed.")returnreturnjson.loads(rep.content)['access_token']defsend_msg(self,content):url="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+self.tokenheader={"Content-Type":"application/json"}form_data={"touser":"@all","toparty":"PartyID1|PartyID2","totag":"TagID1|TagID2","msgtype":"textcard","agentid":1000002,"textcard":{"title":"服务异常警告","description":content,"url":"URL","btntxt":"更多"},"safe":0}rep=self.s.post(url,data=json.dumps(form_data).encode('utf-8'),headers=header)ifrep.status_code!=200:print("请求失败。")returnreturnjson.loads(rep.content)然后就可以通过send_msg函数发送消息了wechat=WeChatPub()now=datetime.datetime.now()timenow=now.strftime('%Yyear%mmonth%dday%H:%M:%S')wechat.send_msg(f"
