nodejs微信公衆號開發——8.羣發消息

上一篇文章:nodejs微信公衆號開發——7.用戶管理,主要介紹了用戶管理的一些經常使用接口,包括用戶分組、設置備註名、獲取用戶基本信息等。本節微信高級羣發接口(項目github地:https://github.com/Panfen/wem... )html

1. 高級羣發接口

在公衆平臺網站上,爲訂閱號提供了天天一條的羣發權限,爲服務號提供每個月(天然月)4條的羣發權限。而對於某些具有開發能力的公衆號運營者,能夠經過高級羣發接口,實現更靈活的羣發能力。須要注意的點:node

  • 對於認證訂閱號,羣發接口天天可成功調用1次,這次羣發可選擇發送給所有用戶或某個分組;
  • 對於認證服務號雖然開發者使用高級羣發接口的每日調用限制爲100次,可是用戶每個月只能接收4條,不管在公衆平臺網站上,仍是使用接口羣發,用戶每個月只能接收4條羣發消息,多於4條的羣發將對該用戶發送失敗;
  • 具有微信支付權限的公衆號,在使用羣發接口上傳、羣發圖文消息類型時,可以使用\<a>標籤加入外鏈;
  • 開發者可使用預覽接口校對消息樣式和排版,經過預覽接口可發送編輯好的消息給指定用戶校驗效果。

2. 實現消息羣發

2.1 實現

和以前的步驟實際上是同樣的,先在api中定義請求的url地址:git

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

在實現具體函數的時候,須要注意請求的body內容由於發送消息的類型不一樣而呈現差別化,須要特別留意,查看官方文檔根據分組進行羣發【訂閱號與服務號認證後都可用】github

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的處理。json

2.2 測試

else if(content === '7'){
    var text = {
        content:'這是羣發消息測試唔~'
    };
    var msg = yield wechatApi.massSendMsg('text',text,114);
    console.log('msg:'+ JSON.stringify(msg));
}

圖片描述

相關文章
相關標籤/搜索