使用Python发送群发消息。具体的实现步骤如下:
- 导入必要的库:
pythonCopy Codeimport requests
- 构建请求的URL和参数:
pythonCopy Codeurl = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=ACCESS_TOKEN"
需要替换ACCESS_TOKEN
为有效的访问令牌。
- 构建请求的数据,这里以发送图文消息为例:
pythonCopy Codedata = {"filter": {"is_to_all": False,"tag_id": 2},"mpnews": {"media_id": "123dsdajkasd231jhksad"},"msgtype": "mpnews","send_ignore_reprint": 0
}
其中,filter
用于设置接收者,mpnews
用于设置即将发送的图文消息,media_id
是需要群发的消息的媒体ID。
- 发送POST请求:
pythonCopy Coderesponse = requests.post(url, json=data)
- 处理响应:
pythonCopy Coderesult = response.json() if result["errcode"] == 0: print("群发消息发送成功!") print("消息ID:", result["msg_id"]) else: print("群发消息发送失败,错误信息:", result["errmsg"])
微信API文档如下:根据标签进行群发【订阅号与服务号认证后均可用】 接口调用请求说明 http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=ACCESS_TOKEN POST数据示例如下: 图文消息(注意图文消息的media_id需要通过上述方法,或通过 “草稿箱 / 新建草稿” 接口来得到,海外微信公众号仅支持发送图文(mpnews)消息):{ "filter":{ "is_to_all":false, "tag_id":2 }, "mpnews":{ "media_id":"123dsdajkasd231jhksad" }, "msgtype":"mpnews", "send_ignore_reprint":0 }
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
filter | 是 | 用于设定图文消息的接收者 |
is_to_all | 否 | 用于设定是否向全部用户发送,值为true或false,选择true该消息群发给所有用户,选择false可根据tag_id发送给指定群组的用户 |
tag_id | 否 | 群发到的标签的tag_id,参见用户管理中用户分组接口,若is_to_all值为true,可不填写tag_id |
mpnews | 是 | 用于设定即将发送的图文消息 |
media_id | 是 | 用于群发的消息的media_id |
recommend | 否 | 推荐语,不填则默认为“分享图片” |
msgtype | 是 | 群发的消息类型,图文消息为mpnews,文本消息为text,语音为voice,音乐为music,图片为image,视频为video,卡券为wxcard |
title | 否 | 消息的标题 |
description | 否 | 消息的描述 |
thumb_media_id | 是 | 视频缩略图的媒体ID |
send_ignore_reprint | 是 | 图文消息被判定为转载时,是否继续群发。 1为继续群发(转载),0为停止群发。 该参数默认为0。 |
返回说明
参数 | 说明 |
---|---|
type | 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb),图文消息为news |
errcode | 错误码 |
errmsg | 错误信息 |
msg_id | 消息发送任务的ID |
msg_data_id | 消息的数据ID,该字段只有在群发图文消息时,才会出现。可以用于在图文分析数据接口中,获取到对应的图文消息的数据,是图文分析数据接口中的msgid字段中的前半部分,详见图文分析数据接口中的msgid字段的介绍。 |
请注意:在返回成功时,意味着群发任务提交成功,并不意味着此时群发已经结束,所以,仍有可能在后续的发送过程中出现异常情况导致用户未收到消息,如消息有时会进行审核、服务器不稳定等。此外,群发任务一般需要较长的时间才能全部发送完毕,请耐心等待。
返回数据示例(正确时的JSON返回结果):
{"errcode":0,"errmsg":"send job submission success","msg_id":34182, "msg_data_id": 206227730
}
错误码
返回码 | 含义 |
---|---|
41040 | 字数≥300字,才能声明文字原创 |