Skip to content

消息群发

向军大叔每晚八点在 抖音bilibli 直播

xj-small

微信为订阅号提供了每天一条的群发权限,为服务号提供每月(自然月)4 条的群发权限。开发者可以使用预览接口校对消息样式和排版,通过预览接口可发送编辑好的消息给指定用户校验效果。

本接口中所有使用到 media_id 的地方,现在都可以使用素材管理中的永久素材 media_id 了。

消息预览

下面演示是图文消息的预览,如果想发送图片等消息预览,开发者可以查看微信官方文档的数据结构。

$data = [
	"touser"  => "oGiQGuMR-fR_WeD6gLRKnqgMxYGo",
	"mpnews"  => [
		"media_id" => "vwkQqqBXrV7ND7wUu-tCnL4Lb6Zqb-MymQA7dZbt4rU",
	],
	"msgtype" => "mpnews",
];
//消息管理模块
$message = new Message;
$message->preview($data);

群发消息

群发是将已经上传到微信的素材发送给粉丝,所以需要先行上传素材。

$data = [
	"filter"			=> [
		"is_to_all" 	=> true,
	],
	"mpnews"              => [
		"media_id" => "vwkQqqBXrV7ND7wUu-tCnL4Lb6Zqb-MymQA7dZbt4rU",
	],
	"msgtype"             => "mpnews",
	"send_ignore_reprint" => 0,
];
$res  = (new Message)->sendAll($data);

删除群发

群发之后,随时可以通过该接口删除群发。只有已经发送成功的消息才能删除,删除群发消息只能删除图文消息和视频消息,其他类型的消息一经发送,无法删除。

$data = [
	//群发消息的编号
	"msg_id":30124
];
(new Message)>delMassMessage($data);

返回说明

[
   "errcode"=>0,
   "errmsg"=>"ok"
]

查询群发消息发送状态

$data = [
	//群发消息的编号
	"msg_id":30124
];
(new Message)->getMassMessageState($data);

返回状态

[
   "msg_id"=>201053012,
   "msg_status"=>"SEND_SUCCESS"
]

事件推送群发结果

由于群发任务提交后,群发任务可能在一定时间后才完成,因此,群发接口调用时,仅会给出群发任务是否提交成功的提示,若群发任务提交成功,则在群发任务结束时,会向开发者在公众平台填写的开发者 URL(callback URL)推送事件。

需要注意,由于群发任务彻底完成需要较长时间,将会在群发任务即将完成的时候,就推送群发结果,此时的推送人数数据将会与实际情形存在一定误差。

//判断是否是群发消息推送事件
if ($message->isMassMessage())
{
	//执行处理代码...
}