• Python调用企微机器人: 发送常用格式汇总


    企微接口文档

    发送应用消息 - 接口文档 - 企业微信开发者中心

    发送格式

    应用支持推送文本、图片、视频、文件、图文等类型。
    ~~~以下列举常用格式 示例~~~

    1.发送文本

    代码如下:

    1. def sendtxt_robotmsg(self):
    2. # 正式key
    3. wx_key = "xx"
    4. wx_webhookurl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}'.format(wx_key)
    5. headers = {'Content-Type': 'application/json'}
    6. //发送消息时在企微自动@的人:xx值必须为同事注册企微的手机号或姓名
    7. hbpeople = ["xx"]
    8. msg = '请关注'
    9. testdata = json.dumps({"msgtype": "text", "text": {"content": msg, "mentioned_list": hbpeople}})
    10. r = requests.post(wx_webhookurl, data=testdata, headers=headers, verify=False)
    11. print(r.text)
    12. return r

    发送结果:

    2.发送图片

    代码如下:

    图片存放在这里:

    1. #图片所在文件夹路径
    2. SCRIPTS_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    3. GENERATECASE_DIR = os.path.join(SCRIPTS_DIR, "xx")
    4. DATAS_DIR = os.path.join(GENERATECASE_DIR, "xx")
    5. def sendimage_robotmsg():
    6. # 调试key
    7. wx_key = "xx"
    8. wx_webhookurl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}'.format(wx_key)
    9. headers = {'Content-Type': 'application/json'}
    10. #图片(base64编码前)最大不能超过2M,支持JPG,PNG格式
    11. imgPath = os.path.join(DATAS_DIR, "有福气.png")
    12. with open(imgPath,"rb") as f:
    13. fd=f.read()
    14. base64Content=str(base64.b64encode(fd),"utf-8")
    15. with open(imgPath,"rb") as f:
    16. fd=f.read()
    17. md = hashlib.md5()
    18. md.update(fd)
    19. md5Content = md.hexdigest()
    20. testdata = {"msgtype": "image","image": {"base64": base64Content,"md5": md5Content}}
    21. r = requests.post(wx_webhookurl, headers=headers, json=testdata)
    22. print(r.text)
    23. return r

    发送结果:

    3.发送文件

    文件路径:

    代码如下:

    1. SCRIPTS_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    2. GENERATECASE_DIR = os.path.join(SCRIPTS_DIR, "xx")
    3. DATAS_DIR = os.path.join(GENERATECASE_DIR, "xx")
    4. def upload_weixin(key=None, filename=None):
    5. """
    6. 上传附件到企业微信,获得media_id.然后发送消息通知,可查看文件
    7. """
    8. if not key:
    9. print("key不能为空")
    10. raise
    11. # 请求地址
    12. url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key={}&type=file".format(key)
    13. # 请求头
    14. headers = {"Content-Type": "multipart/form-data"}
    15. # 请求数据,是rb读取文件流
    16. data = {"file": open(filename, "rb")}
    17. # 发送请求
    18. res = requests.post(url, files=data, headers=headers).json()
    19. return res.get("media_id")
    20. def sendfile_robotmsg():
    21. #key
    22. wx_key = "xx"
    23. wx_webhookurl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}'.format(wx_key)
    24. headers = {'Content-Type': 'application/json'}
    25. filename = os.path.join(DATAS_DIR, "xx.html")
    26. print(filename)
    27. medid= upload_weixin(wx_key,filename)
    28. data = {
    29. "msgtype": "file",
    30. "file": {
    31. "media_id": medid
    32. }
    33. }
    34. print(medid)
    35. r = requests.post(url=wx_webhookurl,headers=headers, json=data)
    36. print(r.text)
    37. return r

    发送结果:

    4.发送图文

    文件路径:

    代码如下:

    1. SCRIPTS_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    2. GENERATECASE_DIR = os.path.join(SCRIPTS_DIR, "xx")
    3. DATAS_DIR = os.path.join(GENERATECASE_DIR, "xx")
    4. def sendimagetext_robotmsg():
    5. # 正式key
    6. wx_key = "xx"
    7. wx_webhookurl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}'.format(wx_key)
    8. headers = {'Content-Type': 'application/json'}
    9. imgPath = os.path.join(DATAS_DIR, "有福气.png")
    10. testdata = {
    11. "msgtype" : "news",
    12. "agentid" : 1,
    13. "news" : {
    14. "articles" : [
    15. {
    16. "title" : "测试一下",
    17. "description" : "测试",
    18. "url" : "URL",
    19. "picurl":"",
    20. "pagepath": imgPath
    21. }
    22. ]
    23. },
    24. "enable_id_trans": 0,
    25. "enable_duplicate_check": 0,
    26. "duplicate_check_interval": 1800
    27. }
    28. r = requests.post(wx_webhookurl, headers=headers, json=testdata)
    29. print(r.text)
    30. return r

    发送结果:

  • 相关阅读:
    JavaWeb Cookie
    表单判断0也生效相关方法
    HNUCM 您好中国
    路由懒加载
    css pointer-events 多层鼠标点击事件
    惊奇发现业务移动端在往小程序化发展
    Mongo基础笔记
    30天Python入门(第二十九天:深入了解Python API的使用2.0)
    原生js 之 (BOM操作)
    Java实现截取视频第一帧
  • 原文地址:https://blog.csdn.net/gzl0524/article/details/134460038