案例:实现选择本地图片并向企业微信机器人发送图片的功能,可以使用 Python 的 Pillow 库来进行图片处理和转换,并使用 requests 库来实现向企业微信机器人发送 POST 请求。以下是一个示例代码,你可以根据自己的需求
-
import base64
import os
import requests
from PIL import Imagedef send_message_and_image(webhook_url, message, image_path):
"""
使用企业微信机器人发送消息和图片:param webhook_url: 企业微信机器人 Webhook URL
:param message: 要发送的文本消息内容
:param image_path: 要发送的图片的本地路径
"""
headers = {'Content-Type': 'application/json'}# 读取并编码图片
with open(image_path, 'rb') as f:
img_data = f.read()
img_base64 = base64.b64encode(img_data).decode('utf-8')# 构造请求参数
payload = {
"msgtype": "news",
"news": {
"articles": [
{
"title": message,
"description": "",
"url": "",
"picurl": f"data:image/png;base64,{img_base64}",
}
]
}
}# 发送请求
try:
response = requests.post(webhook_url, headers=headers, json=payload)
if response.status_code == 200:
print('消息和图片发送成功')
else:
print(f'消息和图片发送失败:{response.content}')
except Exception as e:
print(f'消息和图片发送失败:{e}')# 调用函数发送消息和图片
webhook_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
message = '这是一条来自企业微信机器人的测试消息,请勿回复!'
image_path = 'C:/Users/xxx/Desktop/image.png' # 替换成你本地的图片路径
send_message_and_image(webhook_url, message, image_path)
-
在上述代码中,我们使用了 base64 编码将图片转换为文本格式,并将编码后的文本嵌入到请求参数中。需要注意的是,如果要使用本地图片,你需要将
image_path
参数替换为你本地图片的完整路径。另外,如果你的图片格式不是
png
,可以将'data:image/png;base64,'
中的png
改为相应的格式(如jpg
、jpeg
、gif
等)。