• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Python和企业微信-3

武飞扬头像
我口袋有三十三块
帮助1

本篇讲一下怎么跟自己的程序做关联,如:自己的程序跑完了之后,如何把结果通过企业微信通知。
学新通

实际例子没想好,就用刚才学的flask吧

思路:

1、定义一个函数A,写自己要做的事情
2、定义一个函数B,用来发送执行发送企业微信的动作
3、用flask做一个web接口
4、调用接口执行函数A。根据执行结果判断是否要发送企业微信通知

在说具体步骤之前,插一个小话题

关于企业微信的access_token的。那玩意儿时效性太短了。昨天生成的,今天就没用了。无奈,重写一下生成access_token的方法,让程序每次执行的时候都生成一次吧。

小话题的操作步骤:

新建access_token.py文件,写代码。其中cropid,secretid是从企业微信里获取的,我写到了文件里。不知道怎么获取的,可以参考下:https://blog.csdn.net/xkukeer/article/details/124124245?spm=1001.2014.3001.5501

import requests
import config

def get_access_token():
    url = f'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={config.cropid}&corpsecret={config.secretid}'
    r = requests.get(url)
    access_token = r.json()['access_token']
    return access_token

这段代码先放着,不用运行。over

小话题说完了。

具体实现步骤:

1、定义一个函数add:计算传入参数的值,并返回
2、定义发送企业微信send_text_message
3、做个flask的接口,路由给两个吧。一个/一个/add。
其中:/主要用于打开页面的时候别报错;
/add主要用于计算并发送消息

import requests
import json
import faker
from work_wechat import config
import access_token
from flask import Flask
fk = faker.Faker()
token = access_token.get_access_token()

def add(a,b):
   return a b

def send_text_message():
   url = f"https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}&random=69152"
   data = json.dumps({
      "touser": config.touser,
      "toparty": config.toparty,
      "totag": config.totag,
      "msgtype": "text",
      "agentid": config.agentid_ceshi1,
      "text": {
         "content": "计算完成"
      },
      "safe": 0,
      "enable_id_trans": 0,
      "enable_duplicate_check": 0
   })
   headers = {
      'User-Agent': fk.user_agent(),
      'Content-Type': 'application/json'
   }

   response = requests.request("POST", url, headers=headers, data=data)
   print(response.text)
#----------------------------------------------------------------------------------------------------------------------
app = Flask(__name__)
@app.route('/')
def index():
   return 'hello world'
@app.route('/add/<int:a> <int:b>')
def plus(a,b):
   if add(a, b) == 10:# 如果a b的结果=10,就算成功。执行if后边的语句,发送企业微信消息
      result = 'success'
      send_text_message()#发送企业微信消息
      print(result)
   else:
      result = 'fail'# 如果a b不等于10,则失败,不发送
      print(result)
   return result # 把结果打印到网页上





if __name__ == '__main__':
   app.run(port=8082,debug=True)   # 启动flask
学新通

代码完成,开始测试:

1、用2和8试下,结果如下:

学新通
企业微信接受到了消息
学新通

2、用2和1试下,结果如下:企业微信没收到消息

学新通

add()这个函数是我要做的事情
send_text_message()这个函数是发送消息的功能代码
flask里的plus()做了判断:要做的事情是否完成?如果完成了,就发消息通知;如果没完成就不发送(或者也可以发送,提示信息是失败)

那么按照这个思路,是否可以可以进行一些扩展?

比如:用于学生在线考试的成绩通知:
学生在线做题,交卷之后,自动执行后端的评分程序。把结果写入数据库,等所有人都交卷完成后,给班主任(学生)发通知,告诉班主任(学生)成绩。

比如:用于问卷收集的数据分析通知:
公司A给10000个用户发了调查问卷,客户填完后,结果入库。每天18.00给运营发送问卷回答情况以及问卷数据分析。等等

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgahcie
系列文章
更多 icon
同类精品
更多 icon
继续加载