1. 概述
群發消息的意思是将消息發給一群人,這個好了解。當然,公衆平台這個領域,群發消息是要發給關注了本公衆号的人群的。
公衆号提供了兩種群發方式,一個是發給多個openid,一個是按标簽發送,接下來實作下。
2. 代碼部分
代碼比較簡單如下,注意兩種發送方式使用的類不同。
/**
* 群發消息控制器
*/
@Api(tags = "群發消息API")
@RestController
public class MassMessageController {
@Autowired
private WxMpService wxMpService;
@ApiOperation(value = "指定openids發送")
@PostMapping("/massOpenIdsMessageSend")
public WxMpMassSendResult massOpenIdsMessageSend(@RequestParam("openids") String[] openids, @RequestParam("content") String content) throws WxErrorException {
WxMpMassOpenIdsMessage massMessage = new WxMpMassOpenIdsMessage();
massMessage.setMsgType(WxConsts.MassMsgType.TEXT);
massMessage.setContent(content);
for (String openid : openids) {
massMessage.getToUsers().add(openid);
}
WxMpMassSendResult massResult = wxMpService.getMassMessageService().massOpenIdsMessageSend(massMessage);
return massResult;
}
@ApiOperation(value = "指定标簽發送")
@PostMapping("/massGroupMessageSend")
public WxMpMassSendResult massGroupMessageSend(@RequestParam("tagId") Long tagId, @RequestParam("content") String content) throws WxErrorException {
WxMpMassTagMessage massMessage = new WxMpMassTagMessage();
massMessage.setTagId(tagId);
WxMpMassSendResult massResult = wxMpService.getMassMessageService().massGroupMessageSend(massMessage);
}
3. 測試
啟動項目後,先查詢使用者清單得到openid,然後查詢标簽清單得到tagId,然後進行接口測試即可。
注意調用成功後,對應使用者的微信會收到公衆号主動發送過來的消息。
收到後,效果如下:
4. 小結
注意群發消息需要發給多個人,是以在通過openids發送時,至少得填寫兩個人的openid。