首页 » 漏洞 » nodejs微信公众号开发——8.群发消息

nodejs微信公众号开发——8.群发消息

 
文章目录

上一篇文章: nodejs微信公众号开发——7.用户管理 ,主要介绍了用户管理的一些常用接口,包括用户分组、设置备注名、获取用户基本信息等。本节微信高级群发接口(项目github地: https://github.com/Panfen/wem...

1. 高级群发接口

在公众平台网站上,为订阅号提供了每天一条的群发权限,为服务号提供每月(自然月)4条的群发权限。而对于某些具备开发能力的公众号运营者,可以通过高级群发接口,实现更灵活的群发能力。需要注意的点:

  • 对于认证订阅号,群发接口每天可成功调用1次,此次群发可选择发送给全部用户或某个分组;

  • 对于认证服务号虽然开发者使用高级群发接口的每日调用限制为100次,但是用户每月只能接收4条,无论在公众平台网站上,还是使用接口群发,用户每月只能接收4条群发消息,多于4条的群发将对该用户发送失败;

  • 具备微信支付权限的公众号,在使用群发接口上传、群发图文消息类型时,可使用 /<a> 标签加入外链;

  • 开发者可以使用预览接口校对消息样式和排版,通过预览接口可发送编辑好的消息给指定用户校验效果。

2. 实现消息群发

2.1 实现

和之前的步骤其实是一样的,先在api中定义请求的url地址:

var api = {     ...     mass:{         sendall:prefix+'message/mass/sendall?',  //access_token=ACCESS_TOKEN 群发消息     } }

在实现具体函数的时候,需要注意请求的 body 内容因为发送消息的类型不同而呈现差异化,需要特别留意, 查看官方文档根据分组进行群发【订阅号与服务号认证后均可用】

Wechat.prototype.massSendMsg = function(type,message,groupid){     var that = this;     var msg = {         filter:{},         msgtype:type     }     if(!groupid){         msg.filter.is_to_all = true     }else{         msg.filter.is_to_all = false;         msg.filter.group_id = groupid;     }     msg[type] = message;     return new Promise(function(resolve,reject){         that.fetchAccessToken().then(function(data){             var url = api.mass.sendall + 'access_token=' + data.access_token;                     request({method:'POST',url:url,body:msg,json:true}).then(function(response){                 var _data = response.body;                 if(_data.errcode === 0){                     resolve(_data);                 }else{                     throw new Error('send mass message failed: ' + _data.errmsg);                 }             }).catch(function(err){                 reject(err);             });         });     }); }

注意对 msg 的处理。

2.2 测试

else if(content === '7'){     var text = {         content:'这是群发消息测试唔~'     };     var msg = yield wechatApi.massSendMsg('text',text,114);     console.log('msg:'+ JSON.stringify(msg)); }

nodejs微信公众号开发——8.群发消息

原文链接:nodejs微信公众号开发——8.群发消息,转载请注明来源!

0