介绍
微信群提供了机器人功能,通过 API 可以快速向群内发送消息,可以用于各种推送类信息。
消息类型支持图片,因此可以将手机使用的文件下载链接变成二维码,供手机扫码下载使用。
配置
只需要一个 HTTP 请求即可将内容发送到群中,支持多种消息类型。
思路
使用 Python QR 库将下载链接转换为二维码
使用在线网站工具将 curl 请求转换为 Python 代码:
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import base64
import hashlib
import io
import json
import requests
import qrcode
def main():
send_wxwork_qrcode('token-xxxxxxxxxxxx', 'http://www.youdomain.com/download.apk')
def send_wxwork_qrcode(token, content):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(content)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
# img.show()
# img.save("qrcode.png")
img_bytes_io = io.BytesIO()
img.save(img_bytes_io, format='PNG')
img_bytes_array = img_bytes_io.getvalue()
encode_str = base64.b64encode(img_bytes_array)
image_data = str(encode_str, 'utf-8')
md = hashlib.md5()
md.update(img_bytes_array)
image_md5 = md.hexdigest()
# print('data:image/png;base64,' + image_data)
# print(image_md5)
params = {
'key': f'{token}',
}
data = {
"msgtype": "image",
"image": {
"base64": image_data,
"md5": image_md5
}
}
headers = {'content-type': 'application/json;charset=utf-8'}
url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send'
body = json.dumps(data)
print(body)
response = requests.post(url, params=params, data=body, headers=headers)
print(f'response:\n{response.text}')
if __name__ == '__main__':
main()
|