首页 > 编程语言 >python调用企业微信webhook发送消息

python调用企业微信webhook发送消息

时间:2023-05-17 17:35:10浏览次数:53  
标签:__ python 微信 image base64 webhook json data

官方文档:

群机器人配置说明 - 文档 - 企业微信开发者中心

发送图片

解决 :

{"errcode":301019,"errmsg":"media md5 not match, hint: [1684315383531332325922225], from ip: 222.71.242.114, more info at https://open.work.weixin.qq.com/devtool/query?e=301019"}

这个是瞎说,参考下文示例即可


import hashlib
import base64
import requests
import json


def sendBot(url, image_path):
    '''

    :param url:   传入企业微信机器人webhoot
    :param image_path:  本地图片路径
    :return:
    '''
    with open(image_path, "br") as f:
        fcont = f.read()
        # 转化图片的base64
        ls_f = base64.b64encode(fcont)
        # 计算图片的md5
        fmd5 = hashlib.md5(fcont)
    data = {"msgtype": "image", "image": {"base64": ls_f.decode('utf8'), "md5": fmd5.hexdigest()}}
    data_json = json.dumps(data)
    print('推送的json%s' % data_json)
    prequte = requests.post(url, data=data_json)
    return prequte.text


if __name__ == '__main__':
    demo = sendBot('https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxx', "2.png")
    if json.loads(demo)['errcode'] == 0:
        print('调用成功')
    else:
        print('调用失败%s' % demo)

参考:

workwechat_webhook/webhook_Image.py at master · xiaomu003/workwechat_webhook

其他示例

data ={

    "msgtype": "markdown",
    "markdown": {
        "content": content
    }
}
def send_wechat(webhook, data):
    header = {
                "Content-Type": "application/json",
                "Charset": "UTF-8"
                }
    info = requests.post(url=webhook, json=data, headers=header)
    print(info.text)
send_wechat(webhook,data)

注意:是json,不用二次转化了,这样好很多

标签:__,python,微信,image,base64,webhook,json,data
From: https://www.cnblogs.com/ministep/p/17409456.html

相关文章

  • Python中,y轴数据逆序问题的解决
    问题描述想要从高到低表示数据的变化,发现y轴数据与实际的二维坐标轴不相符问题解决在使用了x轴和y轴之后,加上这样一条代码:plt.gca().invert_yaxis()即可实现y轴由高到低变化,恢复正常实际!......
  • python实现数据库备份与恢复
    1.概述首先,数据库的备份理论上只是一句命令的事,但是也可以通过循环遍历数据库的表实现备份,但是无疑那样会使代码量提升很多,不过就是用SQL语句,原理倒是非常简单。当然,现在市面上用的最多的还是用命令的,这条命令如果手动操作应该是在命令窗口就可以实现的,用代码的话不过是拼接下字......
  • CentOS6 基于 Python 安装 Sentry
    概述Sentry是一款可用于Production环境的错误跟踪工具,可实时通知Production环境中用户由于一些不可预料行为(或者程序写的有问题)导致程序Crash或Exception,Sentry可以通过Integration如HipChat来发送通知,并且可以通过JIRAIntegration来快速创建Issue,然后开发者......
  • Scala中实现和Python一致的整数除法和整数求余
    \[\color{black}{\text{Inscala,it'sweirdtomimic`%``//`ofpython}}\]/*Python's%operatorreturnsaresultwiththesamesignasthedivisor,and//roundstowardsnegativeinfinity.InScala,%and/don'tbehavethesameway.......
  • python:ERROR: Could not build wheels for wordcloud, which is required to install
    pycharm里无法下载,在下面下载出现问题 需要下载error里的文件https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud这个网站找。输入Python,看自己电脑是怎样的 下载文件后,放到对应位置,下载成功 ......
  • Python枚举类型enum
    为什么需要枚举枚举(Enum)是一种数据类型,也是一种特别的类,是绑定到唯一值的符号表示,可以使用它来创建用于变量和属性的常量集枚举类可以看成是一个下拉菜单,给出特定的选项且这些选项不可修改,更贴近自然语言的方式表达数据,可以让代码更容易阅读、维护,减少转换或者错误值引......
  • 48024 python 代码分析
    ComputerScience220SC(2023)Assignment3(Basicgraphalgorithmsandtraversals)SeeCanvasforduedateThisassignmentrequiresyoutosubmitprogramsinPythonthatyouhavewrittenyourselftotheautomarker,https://www.automarker.cs.auckland.ac.nz.Yo......
  • 【Python】Centos7安装dirsearch
    一、升级Openssl1.1.1 1、官网下载源码:https://www.openssl.org/2、安装#./config--prefix=/datas/soft/openssl-1.1.1no-zlib#make#makeinstall3、新版配置#ln-s/datas/soft/openssl-1.1.1/include/openssl/usr/include/openssl#ln-s/datas/soft/openss......
  • < Python全景系列-3 > Python控制流程盘点及高级用法、神秘技巧大揭秘!
    欢迎来到我们的系列博客《Python全景系列》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。 这是系列第三篇,在这篇文章中我们将全面深......
  • python 使用企业微信发邮件加加图形化界面
    importsysfromPyQt5.QtWidgetsimportQApplication,QWidget,QLabel,QLineEdit,QTextEdit,QPushButtonimportrequests,base64,hashlibimportsmtplibimportosimportglobfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipa......