本书共分10章,案例程序采用广泛流行的PHP、MySQL、XML、CSS、JavaScript、HTML5等程序语言及数据库实现。系统完整地介绍微信公众平台基础接口、自定义菜单、高级接口、微信支付、分享转发等所有相关技术,以生活类、娱乐类、企业类微信开发为切入点,讲解了30多个功能或应用案例。
本书按照从简单到复杂,从基础到实践的方式编排,在讲解过程中注重将原理和实践相结合。初学者可以在了解PHP和MySQL语法之后,从头至尾学习,对于其中难以理解的部分可以查阅相关资料,针对企业功能类的开发还需要具有一定的JavaScript、CSS、HTML等编程基础。
本书可以作为微信公众平台开发的教程。对于移动互联网及微信公众平台的相关从业人员,本书也具有极大的参考价值。
",
"digest" =>"微信公众平台开发含金量最高的书籍"
上传图文消息素材的代码则实现如下:
上传成功后,返回如下,将得到图文消息的media_id
"type":"news",
"media_id":"CsEf3ldqkAYJAU6EJeIkStVDSvffUJ54vqbThMgplD-VJXXof6ctX5fI6-aYyUiQ",
"created_at":1391857799
二、选择群发对象
群发对象可以是用户组,也可以是OpenID列表。
1.用户组
获得用户分组,需要使用高级接口中的查询所有分组接口,获得相应的group_id,
开发方法,可以参考本博客的第88篇教程 微信公众平台开发(88) 用户分组接口
2.OpenID列表
OpenID列表,是使用高级接口中的获取关注者列表接口来实现的。
开发方法,可以参考本博客的第87篇教程 微信公众平台开发(87) 获取关注者列表
三、执行群发
由于群发对象的不同,执行群发也有不同的方式。
1. 对用户组群发
对用户组群发的接口如下:
https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=ACCESS_TOKEN
要POST的内容按内容不同组成也不一样。
文本:
"filter""group_id":"2""text""content":"CONTENT""msgtype":"text"
"filter""group_id":"2""voice""media_id":"123dsdajkasd231jhksad""msgtype":"voice"
"filter""group_id":"2""image""media_id":"123dsdajkasd231jhksad""msgtype":"image"
"filter""group_id":"2""mpvideo""media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc""msgtype":"mpvideo"
"filter""group_id":"2""mpnews""media_id":"123dsdajkasd231jhksad""msgtype":"mpnews"
相关参数说明如下:
参数 | 是否必须 | 说明 |
filter |
是 |
用于设定图文消息的接收者 |
group_id |
是 |
群发到的分组的group_id |
mpnews |
是 |
用于设定即将发送的图文消息 |
media_id |
是 |
用于群发的消息的media_id |
msgtype |
是 |
群发的消息类型,图文消息为mpnews,文本消息为text,语音为voice,音乐为music,图片为image,视频为video |
title |
否 |
消息的标题 |
description |
否 |
消息的描述 |
thumb_media_id |
是 |
视频缩略图的媒体ID |
其接口实现代码如下所示:
返回结果如下:
(3"errcode"]=>0"errmsg"]=>
(27) "send job submission success""msg_id"]=>
(2347614963
参数说明
参数 | 说明 |
type |
媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb),图文消息为news |
errcode |
错误码 |
errmsg |
错误信息 |
msg_id |
消息ID |
下面是向用户组发送图文消息的效果,分别是接收到图文消息,查看图文消息内容后的效果,
2.对OpenID列表群发
接口如下:
POST数据示例如下:
文本:
"touser":"oR5Gjjl_eiZoUpGozMo7dbBJ362A",
"oR5Gjjo5rXlMUocSEXKT7Q5RQ63Q",
"msgtype": "text",
"text":"content": "hello from boxer."
语音:
"touser":"OPENID1",
"OPENID2",
"voice":"media_id":"mLxl6paC7z2Tl-NJT64yzJve8T9c8u9K2x-Ai6Ujd4lIH9IBuF6-2r66mamn_gIT",
"msgtype":"voice"
图片:
"touser":"OPENID1",
"OPENID2",
"image":"media_id":"BTgN0opcW3Y5zV_ZebbsD3NFKRWf6cb7OPswPi9Q83fOJHK2P67dzxn11Cp7THat",
"msgtype":"image"
"touser":"OPENID1",
"OPENID2",
"video":"media_id":"123dsdajkasd231jhksad",
"title":"TITLE",
"description":"DESCRIPTION",
"msgtype":"video"
图文消息(注意图文消息的media_id需要通过上述方法来得到):
"touser":"OPENID1",
"OPENID2",
"mpnews":"media_id":"123dsdajkasd231jhksad",
"msgtype":"mpnews"
参数列表
参数 | 是否必须 | 说明 |
touser |
是 |
填写图文消息的接收者,一串OpenID列表,OpenID最少个,最多10000个 |
mpnews |
是 |
用于设定即将发送的图文消息 |
media_id |
是 |
用于群发的图文消息的media_id |
msgtype |
是 |
群发的消息类型,图文消息为mpnews,文本消息为text,语音为voice,音乐为music,图片为image,视频为video |
title |
否 |
消息的标题 |
description |
否 |
消息的描述 |
thumb_media_id |
是 |
视频缩略图的媒体ID |
返回数据示例(正确时的JSON返回结果):
"errcode":0,
"errmsg":"send job submission success",
"msg_id":2347614964
四、接收群发结果
1. 设置公众号助手
为了能接收群发结果,需要设置公众号助手,结果将推送到绑定的个人微信账号上。其设置如下
2. 接收结果事件
群发任务提交后,群发任务可能在一定时间后才完成,因此,群发接口调用时,仅会给出群发任务是否提交成功的提示,若群发任务提交成功,则在群发任务结束时,会向开发者在公众平台填写的开发者URL(callback URL)推送事件。
推送的XML结构如下(发送成功时):
1394524295
1988
100
80
75
5
参数 | 说明 |
ToUserName |
公众号的微信号 |
FromUserName |
公众号群发助手的微信号,为mphelper |
CreateTime |
创建时间的时间戳 |
MsgType |
消息类型,此处为event |
Event |
事件信息,此处为MASSSENDJOBFINISH |
MsgID |
群发的消息ID |
Status |
群发的结构,为“send success”或“send fail”或“err(num)”。但send success时,也有可能因用户拒收公众号的消息、系统错误等原因造成少量用户接收失败。err(num)是审核失败的具体原因,可能的情况如下:
err(10001), //涉嫌广告 err(20001), //涉嫌政治 err(20004), //涉嫌社会 err(20002), //涉嫌色情 err(20006), //涉嫌违法犯罪 err(20008), //涉嫌欺诈 err(20013), //涉嫌版权 err(22000), //涉嫌互推(互相宣传) err(21000), //涉嫌其他
|
TotalCount |
group_id下粉丝数;或者openid_list中的粉丝数 |
FilterCount |
过滤(过滤是指特定地区、性别的过滤、用户设置拒收的过滤,用户接收已超4条的过滤)后,准备发送的粉丝数,原则上,FilterCount = SentCount + ErrorCount |
SentCount |
发送成功的粉丝数 |
ErrorCount |
发送失败的粉丝数 |
从上可以看出,这其实是公众号群发助手模拟向公众号发送消息,那么群发结果也是返回给公众号助手。
在微信公众平台PHP SDK中增加该事件消息的处理结果如下:
receiveEvent( = "" (-> "subscribe":
= "欢迎关注方倍工作室" "MASSSENDJOBFINISH":
= "消息ID:".->MsgID.
"\n结果:".->Status.
"\n粉丝数:".->TotalCount.
"\n过滤:".->FilterCount.
"\n发送成功:".->SentCount.
"\n发送失败:".->:
= ->transmitText(,
====================================================================
方倍工作室微信公众平台账号关注方法:
1. 微信通讯录-添加朋友-查找公众号-搜索“方倍工作室”
2. 微信通讯录-添加朋友-搜号码-输入“pondbaystudio”
3. 使用微信扫描下面的二维码
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关课程推荐
![](//m.sbmmt.com/img/upload/course/000/000/001/5d1c6df423564706.jpg)
javascript是运行在浏览器上的脚本语言,连续多年,被评为全球最受欢迎的编程语言。是前端开发必备三大法器中,最具杀伤力。如果前端开发是降龙十八掌,好么javascript就是第18掌:亢龙有悔。没有它,你的前端生涯是不完整的。《php.cn独孤九贱(3)-JavaScript视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了javascript知识。
JavaScript教程140792次播放
![](//m.sbmmt.com/img/upload/course/000/000/001/5d1c6e0d2b744633.jpg)
jQuery是一个快速、简洁的JavaScript框架。设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等,是全球最流行的前端开发框架之一。PHP中文网根据最新版本,独家录制jQuery最新视频教程,回馈PHP中文网的新老用户。
jQuery教程115650次播放
![](//m.sbmmt.com/img/upload/course/000/000/015/612f16c1e1c8e978.jpg)
jQuery是最流行的JS函数库,封装了许多实用的功能,其中最引人入胜的就是Ajax。
jQuery中的Ajax操作,语法简单,操作方便,使Ajax从未如此轻松,前端人员从此不再为与服务器异步交互而发愁,本套课程,精选了最常用的几个方法,从基本的语法到每个参数,再到具体实例进行了全面的讲解。
AJAX教程15327次播放
![](//m.sbmmt.com/img/upload/course/000/000/015/617b8f8af2b97409.jpg)
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持
JavaScript教程13482次播放
1/1
![]()