🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 消息群发 微信为订阅号提供了每天一条的群发权限,为服务号提供每月(自然月)4条的群发权限。 开发者可以使用预览接口校对消息样式和排版,通过预览接口可发送编辑好的消息给指定用户校验效果。 本接口中所有使用到media_id的地方,现在都可以使用素材管理中的永久素材media_id了。 [TOC] ## 消息预览 下面演示是图文消息的预览,如果想发送图片等消息预览,开发者可以查看微信官方文档的数据结构。 ``` $data = [ "touser" => "oGiQGuMR-fR_WeD6gLRKnqgMxYGo", "mpnews" => [ "media_id" => "vwkQqqBXrV7ND7wUu-tCnL4Lb6Zqb-MymQA7dZbt4rU", ], "msgtype" => "mpnews", ]; //消息管理模块 $instance = new Message; $instance->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 ($instance->isMassMessage()) { //执行处理代码... } ```