微信企业号开发(6)--发送消息

 [本文所描述的内容具有一定的时效性,请以实际开发所处环境为准]

今天我们介绍我们日常使用最频繁的发送消息功能,在企业号中,由于移除了诸多的限制,消息的发送量几乎没有限制。但是,在此,特别提醒大家,千万不要写个循环发消息测试,这么做很有可能让微信后台认为你的服务器收到攻击,而主动的拒绝你再调用微信功能接口。

-------------------------------------------------------------------------------------------------------------------------------------

正文开始:

1.首先我们来看看官方文档对发送接口的说明:

微信企业号开发(6)--发送消息_第1张图片

2.有了接口之后,我们来看看如何封装JSON数据,在此,我们就不再截官方文档的图,就以text消息为例说明最基本的文本类型消息来说明数据封装函数的写法。具体如下:

/**
	 * text消息
	 * @param touser UserID列表(消息接收者,多个接收者用‘|’分隔)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送————"touser": "UserID1|UserID2|UserID3"
	 * @param toparty PartyID列表,多个接受者用‘|’分隔。当touser为@all时忽略本参数————"toparty": " PartyID1 | PartyID2 "
	 * @param totag TagID列表,多个接受者用‘|’分隔。当touser为@all时忽略本参数————"totag": " TagID1 | TagID2 "
	 * @param msgtype 消息类型,此时固定为:text
	 * @param agentid 企业应用的id,整型。可在应用的设置页面查看
	 * @param content 消息内容
	 * @param safe 表示是否是保密消息,0表示否,1表示是,默认0
	 * */
	public static String STextMsg(String touser,String toparty,String totag,String agentid,String content){
		String PostData = "{\"touser\": %s,\"toparty\": %s,\"totag\": %s,\"msgtype\": \"text\",\"agentid\": %s,\"text\": {\"content\": \"%s\"},\"safe\":\"0\"}";
		return String.format(PostData, touser,toparty,totag,agentid,content);
	}
3.上述的这种普通消息的发送方式大家可以参照微信企业号开发(4)--管理通讯录(部门)的实现。原理基本一致。

4.在这里我们来说另一个常用的消息形式:图文消息。

a.首先要给大家看看官方文档的截图内容。

微信企业号开发(6)--发送消息_第2张图片微信企业号开发(6)--发送消息_第3张图片

b.在上面的JSON格式的数据示例中,我们发现存在JSON嵌套。这里,我们推荐给大家的做法是,将消息声明为JAVA对象。这样做的好处是,在使用时减少多层嵌套容易出现的格式组装错误等。大家可以参考下面的代码实现。

我们给出图文消息的示例代码,如下:

Article.java

public class Article {
    private String Title;  
    private String Description;  
    private String picurl; 
    private String url;
}//省略set/get函数

News.java

public String dfNews(String title,String desc,String picurl,String url){
       Article article = new Article();
       article.setTitle(title);
       article.setDescription(desc);
       article.setPicurl(picurl);
       article.setUrl(url);
       list.add(article);//博主外部定义的一个list,读者可以自定义个list存放article对象
       String articlesList = JSONArray.fromObject(list).toString();
       return articlesList;
}


SendNewsMsg.java

public static String SNewsMsg(String touser,String toparty,String totag,String agentid , String articlesList){
		String postData = "{\"touser\": %s,\"toparty\": %s,\"totag\": %s,\"msgtype\": \"news\",\"agentid\": %s,\"news\": {\"articles\":%s}}";
		return String.format(postData, touser,toparty,totag,agentid,articlesList);
	}


c.上面的代码有引用json工具包,网上有这个jar包,请自行下载。经过上面几个函数的封装,我们已经把函数封装成为微信后台所需要的JSON格式。

d.最后,我们还是需要使用前文中的发送函数HttpRequest.java方法,将封装好的数据发送到微信后台,之后,我们就可以在移动端看到我们所发出的图文消息内容了。

----------------------------------------------------------------------------------------------------------------------------------------------------

至此,微信企业号开发(6)--发送消息结束


参考资料:

[1]微信公众平台开发者文档:http://mp.weixin.qq.com/wiki/home/index.html

[2]企业号开发者接口文档:http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5








你可能感兴趣的:(微信公众号)