微信公众平台开发——群发信息
1、目的
完成在微信公众号中群发消息。这里只是完成简单的文字发送。也可以发送语音图片等,只是发送数据格式不同而已,下面有链接,可以查询数据类型的数据发送格式。
2、群发短信的流程
获取测试公众账号(有账号的可以不用测试账号,不过正式的账号限制比较多)用户关注上面的公众账号通过appid和appsecret获取我们的访问令牌通过访问令牌群发短信3、获取测试公众账号关注公众号
1)、公众测试账号获取
访问上面的连接,选择"接口测试号申请"获得直接打开http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfot=sandbox/index通过微信客户端扫码登录即可登录。
登录完即可获取到一个测试公众账号的信息。主要有appId和appsecret两个参数,这将唯一标示一个公众号,并且需要将他们作为参数获取用户的信息。
2)、配置接口信息
这一步可以参照微信接入说明,该页提供一个服务器端编程语言(专业超文本预处理器的缩写)的实例下载,很简单基本上修改一下自定义的代币就好了,然后把验证页面放到自己的服务器上。
这里我提供我做的一个例子:
准备资源:
域名空间(我的是邮资已付的回邮信封空间万网域名)、仅作验证的服务器端编程语言(专业超文本预处理器的缩写)文件
域名指向的空间根目录我创建了一个wx_sample.php
wx_sample.php
?php/** *微信PHP测试*///定义你的tokendefine('TOKEN ',' weixin ');$微信bj=新微信callbackapitet();$微信对象-有效();班级微信callbackapist { public function valid(){ $ echoStr=$ _ GET[' echoStr '];//有效签名,选项if($ this-CheckSignature()){ echo $ echoStr;退出;} }公共函数responseMsg(){//获取邮政数据,可能是由于环境不同$ PostStr=$ GLOBALS[' HTTP _ RAW _ POST _ DATA '];//提取帖子数据if(!空($ PostStr)){/* libxml _ disable _ Entity _ loader是为了防止xml外部实体注入,最好的方法是自己检查可扩展置标语言的有效性*/libxml _ disable _ Entity _ loader(true);$ PostObj=simple XML _ load _ string($ PostStr,' SimpleXMLElement ',LIBXML _ NocDATa);$ from username=$ PostObj-from username;$ touser name=$ PostObj-touser name;$关键字=trim($ PostObj-Content);$ time=time();$textTpl='xml ToUserName![CData[% s]]/从用户名使用用户名![CData[% s]]/来自用户名创建时间% s/创建时间MsgType![CDATA[%s]]/MsgType内容![CData[% s]]/Content func flag 0/func flag/XML ';if(!空($关键字)){ $ msgType=' text$contentStr='欢迎来到微信世界!$resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$ content str);回应$ resultStr }其他{回应'输入某物.} } else { echo退出;} }私有函数checkSignature() { //如果(!已定义(“TOKEN”){ 0引发新异常(' TOKEN未定义!');} $ signature=$ _ GET[' signature '];$时间戳=$_GET['时间戳'];$ nonce=$ _ GET[' nonce '];$ TOKEN=TOKEN $ TMParr=array($ TOKEN,$timestamp,$ nonce);//使用排序字符串规则sort($tmpArr,SORT _ STRING);$tmpStr=内爆($ TMParr);$ TMPstr=sha1($ TMPstr);if($ TMPstr==$ signature){ 0返回true}否则{返回false} }?然后填写配置信息令牌(一定要与上面的wx_sample.php中的代币一致)、网址的地址)
然后提交就可以了
如果提示失败,请检查代币与【网址】如果是自己的域名和空间,请备案;百度sae,新浪邮资已付的回邮信封的需要自己申请而且认证通过(就是自己拍一个手握证件照上传,很简单的最短2天就o了),这一步必须】
3)配置射流研究…接口安全域名
填写此域名时,不得携带协议。例如,http://www.sagosoft.com/错了。这是一个网址,不是域名
域名应该和www.sagosoft.com类似[否则微信js-sdk访问时会提示网址域无效]
4)关注微信官方账号
用户只有关注这个微信官方账号,才能授权第三方登录,通过打开与微信官方账号信息的链接获取用户信息。所以我们也需要用我们的微信去关注微信号。操作如下:
是成功登录后跳转的同一个页面。我们可以看到这一页有一个二维码。我们可以通过扫描这个二维码来关注,关注成功登录后右侧“用户列表”中会多一个用户的信息。如下图所示:
5)配置回调函数
当我们在微信客户端访问第三方网页(即我们自己的网页)时,可以使用微信网页授权机制。我们不仅需要之前获取的appid和appsecret,还需要用户授权后回调的域名设置,也就是用户授权后页面会跳转到哪里。具体配置如下:
还是在刚才的页面上,有一个“网页授权获取用户基本信息”,点击以后修改即可
填写回拨的域名:
域名是上面配置的根域名。如果上面“接口配置信息”中填写的网址是zcr.sinaaappc.com/wx_sample.php,只需在这里填写zcr.sinaaappc.com即可。
如果您的网站没有被列入黑名单,它将出现在顶部
注意:
1.这里填写的是域名(是字符串),不是网址,所以请不要添加协议头,比如http://。2.授权回叫域名的配置规范为全域名。例如,需要网页授权的域名是www.qq.com。配置后,此域名下的页面可以由http://www.qq.com/music.html和http://www.qq.com/login.html.的OAuth2.0进行身份验证。但是,http://pay.qq.com、http://music.qq.com和http://qq.com无法对OAuth2.0进行身份验证
在这里,我们完成了微信官方账号测试账号的获取和配置,用户关注了微信微信官方账号。
4.通过appid和appsecret获取我们的access_token
Access_token是微信官方账号唯一的全局账单,微信官方账号在调用各个接口时需要用到access_token。开发人员需要妥善保管。至少应保留512个字符空间用于存储access_token。access_token的有效期目前为2小时,需要定期刷新。重复获取将使上次获取的access_token无效。
获取方法:
Http请求方法: GEThttps://api.weixin.qq.com/cgi-bin/token?格兰特_ type=client _ credential appid=APPIDsecret=APPSECRET
参数描述
参数必须指示grant_type为access_token,client_credential appid为第三方用户的唯一凭证,secret为第三方用户的唯一凭证密钥,即appsecret返回指令
正常情况下,微信会将以下JSON包返回微信官方账号:
{ ' ACCESS _ TOKEN ' : ' ACCESS _ TOKEN ',' expires_in':7200}
该参数描述了由access_token获得的证书expires_in的有效时间。单位秒时,微信会返回错误码等信息。JSON数据包如下(这个例子是无效的AppID错误):
{“err code”:40013,“errmsg”:“无效的appid”}
示例:
获取访问令牌:
https://api.weixin.qq.com/cgi-bin/token?grant _ type=client _ credentialpid=wx41cb 8 DBD 827 a 16 e 9 secret=d 4624 c 36 b 6795 D1 d 99 DCF 0547 af 5443d
返回数据:
{ ' access _ token ' : ' qr5uk2vm F5 athv8e-ub 10 fzw 0 catzm _ 1kb kue4 opk 2 ilvvnaoa 7 plzywqluamx6sjq17 pkhrvatug0 _ 1mpkqmdfokm 2750 kalwnk 59 ds-idopjxompjtxa 3 whbn 5 fk Rwnadavar ',' expires _ in' : 7200} 5。通过访问令牌发送短信
在公共平台网站上,订阅号每天提供一个群发权限,服务号每月(自然月)提供四个群发权限。对于一些有开发能力的微信官方账号运营商来说,可以通过先进的群发接口实现更灵活的群发能力。
请注意:
1.对于认证订单号,一天可以成功调用一次群发接口,这个群发可以发送给所有用户或者某个群;2.对于认证服务号,虽然开发者每天使用高级群发接口的调用次数限制在100次,但用户每个月只能收到4条群发消息,无论是在公共平台网站上还是使用接口群发,超过4条群发消息将无法发送给用户;3.有微信支付权限的微信官方账号在使用群发界面上传和群发图文消息类型时,可以使用A标签加入外链;4.开发人员可以使用预览界面对消息样式和布局进行校对,并将编辑好的消息发送给指定用户,通过预览界面查看效果。
1)按分组分组发送[认证后可同时使用订单号和服务号]
调用接口:
Http请求方式: POSThttps://api.weixin.qq.com/cgi-bin/message/mass/sendall? Access _ TOKEN=Access _ TOKEN正文添加以下数据(以JSON格式发送)——发送其他格式数据,只需更改里面的参数信息,详情查看官方微信文档:
{ ' filter ' : { ' is _ to _ all ' : false,' group _ id' :2 ',' text ' : { ' content ' : ' content ' },' msgtype' :' text'}参数说明:
参数必须指示是否使用过滤器将图形消息的接收者设置为全部。否用于设置是否将其发送给所有用户。该值为真或假。选择true将消息发送给所有用户。选择false,根据group_id将其发送给指定组中的用户。如果没有,将其发送到该组的group_id。参与用户管理中的用户分组界面。如果is_to_all值为真,则group_id mpnews用于设置要发送的文本消息。media_id msgtype为群发的消息类型,短信为mpnews,语音为voice。音乐是音乐,图片是图像,视频是视频,卡券是wxcard标题无消息标题描述无消息描述thumb_media_id是视频缩略图的媒体id示例:发送给大家
url:
https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access _ token=KBoNONaJZ4-khafqvjoq6v bx0f-bls7nasjbn 8 fy7 glwav 4 be 1 lrjcob 1 hh 6 ww 35 ixxfwkjnzfnc-on9eqitg 3 xewww 7 o 2 yyvw 9 nadknu6 pqx9 fnsmqcr 8 ojtk8 ug-hdtcaabxn
发送的Json数据:发送给每个人
{ ' filter ' : { ' is _ to _ all ' : true },' text ' : { ' content ' : ' content ' },' msgtype' :' text'}返回数据:
{'errcode' : 0,' errmsg' : '发送作业提交成功',' msg _ id' : 100000003}参数含义:
参数描述媒体文件的类型,包括图像、语音、视频和缩略图。新闻errcode错误代码errmsg错误消息发送任务的msg_data_id消息的图形消息ID msg_data_id。此字段仅在分组发送图形消息时出现。可用于在图形分析数据界面中获取相应图形消息的数据,是图形分析数据界面中msgid字段的前半部分。详见图形分析数据界面中msgid字段的介绍。错误代码及其查询:
全局错误代码解析
使用postman模拟https请求发送,如下图所示:
2)根据OpenID列表,【订单号不可用,但认证后服务号可用】
发送的http请求的Url:(注意:与上面不同)
Http请求方法: POSThttps://api.weixin.qq.com/cgi-bin/message/mass/send?访问_令牌=访问_令牌
数据格式:
{'touser' : ['OPENID1 ',' OPENID2'],' msgtype' :' text ',' text ' : { ' content ' : ' hello from boxer '。}}其中openid1和openid2是微信用户openid(用户唯一)
示例:
发送“of 3pcssnsrmijzewalzzbafwqpxci”和“of 3pcshh1cuihr _ wyau6swipzlw”。
内容为:你好,来自boxer.a href='www.baidu.com '欢迎来到百度/a
url:
https://api.weixin.qq.com/cgi-bin/message/mass/send?access _ token=wrytbnsi u 18 ssehmplf 4 bdfet-bt6e 6 tgr 4 c qgvlbicrypkdakpyfm6-qkkkuhun 8 urkjh6x VM 0 ouadfgqo8ru 8 hod XL-cGc9bh-ezjb2 zuczjsn qk 2416 zi8 kbeofogdafarjb
json数据:
{ ' touser ' :[' of 3pcsnsrmijzewalzzbafwqpxci ',' oF3PcshH1CUIhR_WYau6swUiPzlw' ],' msgtype': 'text ',' text ' : { ' content ' : ' hello from boxer。http://。看起来很糟。' com/'欢迎希沃学院/a'}}返回数据:
{ 'errcode': 0,' errmsg': '发送作业提交成功,' msg_id': 3147483654}使用邮递员模拟发送请求如下:
微信号接收到的内容:
相关微信开发:
微信开放平台开发——网页微信扫码登录(OAuth2.0)
微信公众平台开发——微信授权登录(OAuth2.0)
致谢:感谢您的阅读!
版权声明:微信公众平台开发——群发信息是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。