想要通过企业微信发送消息,首先要获取AccessToken。
AccessToken:是企业号的全局唯一票据,调用接口时需携带AccessToken。
CorpID:是企业号的标识,每个企业号拥有一个唯一的CorpID.
Secret:是管理组凭证密钥。
AccessToken需要用CorpID和Secret来换取,不同的Secret会返回不同的AccessToken。正常情况下AccessToken有效期为7200秒,有效期内重复获取返回相同结果。
1.1官方文档:
1.2获取AccessToken:
public static String getToken(){ HttpRequest request = new HttpRequest(); String corpid = "wxd2b1XXXXXX8a70e6"; String corpsecret = "2CcQErq0243AR8wlXXXXXXX2OIwhE3BCOQxpXAnVNk0"; String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"; String param = "corpid=_corpid&corpsecret=_corpsecret"; param = param.replace("_corpid", corpid).replace("_corpsecret", corpsecret); String result = request.sendGet(url,param); System.out.println(result); Jackson jackson = new Jackson(); Map map = jackson.parse(result, Map.class); Object str = map.get("access_token"); return "" + str; }
这一步解析出我们所需要的AccessToken。
2.1官方文档:
2.2发送图文消息:
public static void sendMessage(){ HashMap<String , Object> map = new HashMap<String , Object>(); String str = getToken(); map.put("touser", "tsh"); map.put("msgtype", "news"); map.put("agentid", 10XXXX4); Map<String , Object> resultMap = new HashMap<String , Object>(); Map<String , Object> secondMap = new HashMap<String , Object>(); resultMap.put("title", "五一放假安排"); resultMap.put("description", "五一假期延长至五月三日,特此通知"); resultMap.put("url", "www.baidu.com"); resultMap.put("picurl", "http://img3.jiemian.com/101/original/20150524/143247563060027600.jpg"); List<Map<String , Object>> list = new ArrayList<Map<String , Object>>(); list.add(resultMap); secondMap.put("articles", list); map.put("news",secondMap); Jackson jackson = new Jackson(); String jsonStr = jackson.toJson(map); String sendUrl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=_access_token"; String url = sendUrl.replace("_access_token", str); HttpReque request = new HttpReque(); String result = request.sendPost(url, jsonStr); System.out.println(result); }
3.手机查看结果:
4.1总结:
对照官方文档一步一步进行!