zoukankan      html  css  js  c++  java
  • 企业微信简单实现消息推送

    废话不多说,上来就堆代码..........

    感觉挺简单,就不过多解释,应该一看就懂.....

    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    import org.springframework.stereotype.Service;
    
    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    
    @Service
    public class SendMsg {
        
        private CloseableHttpClient httpClient;
        private HttpPost httpPost;//用于提交登陆数据
        private HttpGet httpGet;//用于获得登录后的页面
        //CorpID  企业ID 
          //AGENTID 应用的ID
          //Secret 应用的ID对应的密钥
        public static final String CONTENT_TYPE = "Content-Type";
        public static final Integer AGENTID = 1000002;
        public static final String CORPID = "************";
        public static final String CORPSECRET = "*******************";
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//
        private static Gson gson = new Gson();
        
        /**    
         * 
         * @param toUser 用户的ID 格式"UserID1|UserID2|UserID3"
         * @param contentValue 推送消息内容
         * @throws IOException
         */
        public void sendTextMesg(String toUser,String contentValue) throws IOException {
            String token = getToken(CORPID,CORPSECRET);
            String postData = createPostData(toUser, "text",AGENTID, "content", contentValue);
            String response = post("utf-8", CONTENT_TYPE,"https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=", postData, token);
            System.out.println("获取到的token======>" + token);
            System.out.println("请求数据======>" + postData);
            System.out.println("发送微信的响应数据======>" + response);
        }
        public String getToken(String corpId, String corpSecret) throws IOException {
            String resp = toAuth( "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + corpId + "&corpsecret=" + corpSecret);//拼接字符串得到url
            Map<String, Object> map = gson.fromJson(resp,
                    new TypeToken<Map<String, Object>>() {
                    }.getType());
            System.out.println(map);
            return map.get("access_token").toString();
        }
     
        protected String toAuth(String Get_Token_Url) throws IOException {
     
            httpClient = HttpClients.createDefault();
            httpGet = new HttpGet(Get_Token_Url);
            CloseableHttpResponse response = httpClient.execute(httpGet);
            System.out.println(response.toString());
            String resp;
            try {
                HttpEntity entity = response.getEntity();
                System.out.println(response.getAllHeaders());
                resp = EntityUtils.toString(entity, "utf-8");
                EntityUtils.consume(entity);
            } finally {
                response.close();
            }
      
            return resp;
        }
        private String createPostData(String touser, String msgtype, int agent_id, String contentKey, String contentValue) {
            Map<String,Object> weChatData = new HashMap<>();
            weChatData.put("touser",touser);
            weChatData.put("agentid",agent_id);
            weChatData.put("msgtype",msgtype);
            Map<Object, Object> content = new HashMap<Object, Object>();
            content.put(contentKey, contentValue + "
    --------
    " + df.format(new Date()));
            weChatData.put("text",content);
            System.out.println(gson.toJson(weChatData));
            return gson.toJson(weChatData);
        }
     
        private String post(String charset, String contentType, String url, String data, String token) throws IOException {
            CloseableHttpClient httpclient = HttpClients.createDefault();
            httpPost = new HttpPost(url + token);
            httpPost.setHeader(CONTENT_TYPE, contentType);
            httpPost.setEntity(new StringEntity(data, charset));
            CloseableHttpResponse response = httpclient.execute(httpPost);
            String resp;
            try {
                HttpEntity entity = response.getEntity();
                resp = EntityUtils.toString(entity, charset);
                EntityUtils.consume(entity);
            } finally {
                response.close();
            }
            return resp;
        }
    }

    有点忙,相关jar包看API,好像有。。。。。。。。。。

  • 相关阅读:
    「日常训练」Single-use Stones (CFR476D2D)
    「日常训练」Greedy Arkady (CFR476D2C)
    「Haskell 学习」二 类型和函数(上)
    「学习记录」《数值分析》第二章计算实习题(Python语言)
    「日常训练」Alena And The Heater (CFR466D2D)
    Dubbo 消费者
    Dubbo 暴露服务
    Rpc
    git fail to push some refs....
    Spring Cloud (6)config 客户端配置 与GitHub通信
  • 原文地址:https://www.cnblogs.com/wenbiquan/p/10236612.html
Copyright © 2011-2022 走看看