我们知道,企业号主要是面向企业需求而生的,因此内部消息的交流显得非常重要,而且发送、回复消息数量应该很可观,对于大企业尤其如此,因此可以结合企业号实现内部消息的交流。企业号具有关注安全、消息无限制等特点,很适合企业内部的环境。
目标:企业号实现文本、图文消息等消息的发送操作。
3、截至写稿为止,疼讯可发送消息的实际数量是企业号用户数*30,自己可以看文档:http://qydev.weixin.qq.com/wiki/index.php?title=%E5%8F%91%E6%B6%88%E6%81%AF
注2:图文可以用自己网站来代替疼讯保存,而其他媒体信息需要上传到疼讯服务器,其限制如下:
临时素材文件:(media_id)会在上传到微信服务器3天后自动删除。
永久素材文件:(media_id)会一直保存在微信服务器上,但是对企业能够保存的永久素材数量有所限制: 整个企业图文消息素材和图片素材数目的上限为5000,其他类型为1000.
本人根据实际业务具体需求,采用自己服务器来保存图文消息,下面类只需要传给疼讯一个URL链接即可。
你肯定会问我,那视频怎么办?
这种有两种方法解决:
1、上传到疼讯视频,然后把视频有个通用访问链接保存到数据库里面,然后通过servlet之类的技术拼合然后输出成HTML完整页面,把这个servlet访问链接给用户即可。
2、自己服务器保存视频,然后做个通用视频播放模板JSP(HTML5播放视频的网页一堆堆),把访问视频JSP的链接给用户即可。
package com.nsjs; import com.fastwixinextend.QYAPIConfigExt; import com.github.sd4324530.fastweixin.QYFastweixinTest; import com.github.sd4324530.fastweixin.company.api.QYMessageAPI; import com.github.sd4324530.fastweixin.company.api.config.QYAPIConfig; import com.github.sd4324530.fastweixin.company.api.response.GetQYSendMessageResponse; import com.github.sd4324530.fastweixin.company.message.QYArticle; import com.github.sd4324530.fastweixin.company.message.QYNewsMsg; import com.github.sd4324530.fastweixin.company.message.QYTextMsg; import com.github.sd4324530.fastweixin.util.CollectionUtil; import com.github.sd4324530.fastweixin.util.JSONUtil; import java.util.ArrayList; import java.util.List; public class SendMessage { public SendMessage() { super(); } public QYAPIConfigExt config = null; public QYAPIConfigExt initConfig() { if (config == null) { config = new QYAPIConfigExt(MainServernSupport.getCropId(), MainServernSupport.getAPPSecret(), "luozhuang", System.currentTimeMillis()); } return config; } public QYAPIConfigExt initConfig(String CropId, String APPSecret, String AccessToken, long AccessTokenTime) { QYAPIConfigExt config; config = new QYAPIConfigExt(CropId, APPSecret, AccessToken, AccessTokenTime); return config; } /** * @param Text 要发送文本内容 * @param WeixinIDList 成员IDlist * 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送 * @param AgentID 应用ID号 * @return */ public String sendMessage(String Text, String User, String AgentID) { QYTextMsg qyTextMsg = new QYTextMsg(); qyTextMsg.setText(new QYTextMsg.Text(Text)); qyTextMsg.setToUser(User); qyTextMsg.setAgentId(AgentID); QYMessageAPI messageAPI = new QYMessageAPI(initConfig()); GetQYSendMessageResponse response = messageAPI.send(qyTextMsg); return response.getErrmsg(); } /** * @param Text 要发送文本内容 * @param User 成员IDlist * 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送 * @param ZZBM * @param AgentID 应用ID号 * @return */ public String sendMessage(String Text, String User, String ZZBM, String AgentID) { QYTextMsg qyTextMsg = new QYTextMsg(); qyTextMsg.setText(new QYTextMsg.Text(Text)); qyTextMsg.setToUser(User); qyTextMsg.setToParty(ZZBM); qyTextMsg.setAgentId(AgentID); QYMessageAPI messageAPI = new QYMessageAPI(initConfig()); GetQYSendMessageResponse response = messageAPI.send(qyTextMsg); return response.getErrmsg(); } /** * User 和ZZBM必须选一个,需要注意的是ZZBM包括下属所有子部门,所以建议不是群发时候,不要使用ZZBM,只指定User * * @param User * 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送 * @param ZZBM 部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数 * @param agentid 应用ID号 * @param title 标题 * @param description 描述 * @param url 点击后跳转的链接。 * @param picurl 图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80。如不填,在客户端不显示图片 * @return */ public String sendNewsMessage(String User, String ZZBM, String agentid, String[] title, String[] description, String[] url, String[] picurl) { QYNewsMsg msg = new QYNewsMsg(); msg.setToUser(User); msg.setToParty(ZZBM); msg.setMsgType("news"); msg.setAgentId(agentid); List<QYArticle> articleist = new ArrayList<QYArticle>(); for (int i = 0; i < title.length; i++) { QYArticle article = new QYArticle(title[i], description[i], picurl[i], url[i]); articleist.add(article); } msg.setArticles(articleist); QYMessageAPI messageAPI = new QYMessageAPI(initConfig()); GetQYSendMessageResponse response = messageAPI.send(msg); System.out.println(JSONUtil.toJson(msg)); return response.getErrmsg(); } /** * User 和ZZBM必须选一个,需要注意的是ZZBM包括下属所有子部门,所以建议不是群发时候,不要使用ZZBM,只指定User * * @param User * 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送 * @param agentid 应用ID号 * @param title 标题 * @param description 描述 * @param url 点击后跳转的链接。 * @param picurl 图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80。如不填,在客户端不显示图片 * @return */ public String sendNewsMessage(String User, String agentid, String[] title, String[] description, String[] url, String[] picurl) { QYNewsMsg msg = new QYNewsMsg(); msg.setToUser(User); msg.setMsgType("news"); msg.setAgentId(agentid); List<QYArticle> articleist = new ArrayList<QYArticle>(); for (int i = 0; i < title.length; i++) { QYArticle article = new QYArticle(title[i], description[i], picurl[i], url[i]); articleist.add(article); } msg.setArticles(articleist); QYMessageAPI messageAPI = new QYMessageAPI(initConfig()); GetQYSendMessageResponse response = messageAPI.send(msg); System.out.println(JSONUtil.toJson(msg)); return response.getErrmsg(); } public static void main(String[] arg) { SendMessage message = new SendMessage(); message.sendNewsMessage("大师罗庄", "1", MainServernSupport.getAgentID(), new String[]{"大师罗庄博客"}, new String[]{"大师罗庄博客"}, new String[]{"http://blog.csdn.net/luozhuang"}, new String[]{"http://avatar.csdn.net/B/F/A/1_luozhuang.jpg"}); } }