100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 微信公众号开发教程[008]-消息管理-群发消息

微信公众号开发教程[008]-消息管理-群发消息

时间:2021-03-27 04:18:00

相关推荐

微信公众号开发教程[008]-消息管理-群发消息

高级群发接口比较简单(但需要认证).分别可以发送给全部粉丝,或者发送给特定标签下的用户,或者发送给特定用户(根据OpenID列表群发).消息的类型可以是:图文消息,文本消息,语音消息,图片消息,视频消息,卡券消息.需要注意的是除了文本消息能够直接发送外,语音,图片,视频消息需要通过基础支持中的上传下载多媒体文件来得到获得media_id,而图文消息需要先制作出图文消息内容体(获得特殊的media_id).

下面,通过图文消息来讲解群发的api(其他消息类型大家可以参见官方文档).

1).上传图文消息内的图片获取URL.

这玩意我调用了,但发现取得的url,在后面的步骤中似乎没用着.反而是回复消息时,如果回复的是图文消息,在xml结构体里用着了.

我上传了2张图片,代码如下:

function upload_pic() { //上传图文消息内的图片获取URL$ACCESS_TOKEN = "DbEhmwXiL4RWRinpz2sAcfNLqk-PJwtt9esmkpmv4ycwYmCWOhEE7IoMDP31-lnJojKGR8QOP53sFvzzTXGVk3DQZrN7vT4lh8IST_GNhiNh7eBXVViMQI-ssLoOfKjnTGYbAGADQI";$url = "https://api./cgi-bin/media/uploadimg?access_token=$ACCESS_TOKEN";$result = curl_http_upload($url, "meida", "C:\Users\Administrator\Desktop\a.jpg");$json = json_decode($result);echo $json->url;}

得到的返回值如下:

{"url": "/mmbiz/q9jYbRzAGeXKnahdcPUFjP6reSgVibIcKJTXs5tOibzdkiahHv32LLOuBauyzbibDYuR07VNcQVCYHVVf7Sd0tvM7w/0"}{"url": "/mmbiz/q9jYbRzAGeXKnahdcPUFjP6reSgVibIcKs52hkgzsmicAePy5BuqwdBfCzzL9MPEibjZ4vOEE4UP1HlOpIicibLobgA/0"}

2).上传图文消息素材

代码如下:

function upload_ctx() { //上传图文消息素材$ACCESS_TOKEN = "DbEhmwXiL4RWRinpz2sAcfNLqk-PJwtt9esmkpmv4ycwYmCWOhEE7IoMDP31-lnJojKGR8QOP53sFvzzTXGVk3DQZrN7vT4lh8IST_GNhiNh7eBXVViMQI-ssLoOfKjnTGYbAGADQI";$url = "https://api./cgi-bin/media/uploadnews?access_token=$ACCESS_TOKEN";$data = '{"articles": [{"thumb_media_id": "nJdLOlZ1lPluJCph3OlnNEadys0CI43Zzwz75nrp7tcYw6JQIdKCMPr6z0GlDyBs","author": "张仕铨","title": "今天真快乐!","content_source_url": "","content": "遇上了你,是我这辈子最大的幸福,我一定会对你很好很好!","digest": "首show","show_cover_pic": 1}, {"thumb_media_id": "g9QhTm0S6plcWiGqKSvBs5yb1NgKtT1DFGqRKffnFcgVgrOyiDaKyDmVDaX7GsOA","author": "张弄影","title": "洗啊洗啊洗白白!","content_source_url": "","content": "洗洗睡吧,别多想了!","digest": "发来看看","show_cover_pic": 0}]}';$result = curl_http_post($url, $data);echo $result;}

为了偷懒,这里的thumb_media_id我直接是发送图片消息,然后公众号服务器接收消息处取来滴.

得到的返回值如下:

{"type":"news","media_id":"FIyDgwyCxVb4-FHyDJgnGX44BLWE7tGsvyiOA_xYpf9oRtZGjddqukBgZeFq6a8H","created_at":1468469203}

3).预览接口

微信提供在发送前,将该消息发送给指定用户,在手机端查看消息的样式和排版代码的功能.如下:

function preview() { //预览接口$ACCESS_TOKEN = "DbEhmwXiL4RWRinpz2sAcfNLqk-PJwtt9esmkpmv4ycwYmCWOhEE7IoMDP31-lnJojKGR8QOP53sFvzzTXGVk3DQZrN7vT4lh8IST_GNhiNh7eBXVViMQI-ssLoOfKjnTGYbAGADQI";$url = "https://api./cgi-bin/message/mass/preview?access_token=$ACCESS_TOKEN";$data = '{"touser": "oe5SXv71irmrQ0TH-JxA-z_hmYLE","mpnews": {"media_id": "FIyDgwyCxVb4-FHyDJgnGX44BLWE7tGsvyiOA_xYpf9oRtZGjddqukBgZeFq6a8H"},"msgtype": "mpnews"}';$result = curl_http_post($url, $data);echo $result;}

得到的返回值如下:

{"errcode":0,"errmsg":"preview success"}

界面效果如下:

分别点击2个图文之后,会看到以下内容:

和这个

注意1个界面显示图片,1个界面不显示.点击阅读原文,则会进入2).上传图文消息素材设置的站点.

4).根据OpenID列表群发(也可以是根据标签进行群发)

代码如下:

function send_openid() { //根据OpenID列表群发$ACCESS_TOKEN = "DbEhmwXiL4RWRinpz2sAcfNLqk-PJwtt9esmkpmv4ycwYmCWOhEE7IoMDP31-lnJojKGR8QOP53sFvzzTXGVk3DQZrN7vT4lh8IST_GNhiNh7eBXVViMQI-ssLoOfKjnTGYbAGADQI";$url = "https://api./cgi-bin/message/mass/send?access_token=$ACCESS_TOKEN";$data = '{"touser": ["oe5SXv71irmrQ0TH-JxA-z_hmYLE", "oe5SXv45Fq5lcB5jlxdBs6QWPNj8"],"mpnews": {"media_id": "FIyDgwyCxVb4-FHyDJgnGX44BLWE7tGsvyiOA_xYpf9oRtZGjddqukBgZeFq6a8H"},"msgtype": "mpnews"}';$result = curl_http_post($url, $data);echo $result;}

得到的返回值如下:

{"errcode":0,"errmsg":"send job submission success","msg_id":3147483651,"msg_data_id":2247483654}

群发的效果和预览的效果一样.因为在2).上传图文消息素材调用时show_cover_pic的值分别不同.

5).查询群发消息发送状态

代码如下:

function status() { //查询群发消息发送状态$ACCESS_TOKEN = "DbEhmwXiL4RWRinpz2sAcfNLqk-PJwtt9esmkpmv4ycwYmCWOhEE7IoMDP31-lnJojKGR8QOP53sFvzzTXGVk3DQZrN7vT4lh8IST_GNhiNh7eBXVViMQI-ssLoOfKjnTGYbAGADQI";$url = "https://api./cgi-bin/message/mass/get?access_token=$ACCESS_TOKEN";$data = '{"msg_id": "3147483651"}';$result = curl_http_post($url, $data);echo $result;}

得到的返回值如下:

{"msg_id":3147483651,"msg_status":"SEND_SUCCESS"}

6).删除群发

代码如下:

function delete() { //删除群发$ACCESS_TOKEN = "DbEhmwXiL4RWRinpz2sAcfNLqk-PJwtt9esmkpmv4ycwYmCWOhEE7IoMDP31-lnJojKGR8QOP53sFvzzTXGVk3DQZrN7vT4lh8IST_GNhiNh7eBXVViMQI-ssLoOfKjnTGYbAGADQI";$url = "https://api./cgi-bin/message/mass/delete?access_token=$ACCESS_TOKEN";$data = '{"msg_id": "3147483651"}';$result = curl_http_post($url, $data);echo $result;}

得到的返回值如下:

{"errcode":0,"errmsg":"ok"}

此时,再点击相应的图文,则提示该消息已经被删除啦!!如下:

7).事件推送群发结果

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

<xml><ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName><FromUserName><![CDATA[oe5SXvzMz7uoRjMv9NmTSsskNgnY]]></FromUserName><CreateTime>1468469346</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[MASSSENDJOBFINISH]]></Event><MsgID>3147483651</MsgID><Status><![CDATA[send success]]></Status><TotalCount>2</TotalCount><FilterCount>2</FilterCount><SentCount>2</SentCount><ErrorCount>0</ErrorCount></xml>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。