精华内容
下载资源
问答
  • corpwechat-bot corpwechat-bot是一个python封装的企业机器人&应用消息推送库,通过企业微信提供的api实现。 利用本库,你可以轻松地实现从服务器端发送一条文本、图片、视频、markdown...目前实现了两种推送消息方式
  • 该实体类提供企业微信消息推送实体类,并提供可以转化为指定json格式的方法
  • 企业微信发送推送消息以及上传媒体文件完整代码及测试,jdk1.6+ecplise
  • php编写 微信信息推送接口、钉钉推送接口、企业微信推送接口
  • 前言:目前很多公司用的是企业微信或者钉钉,对于服务的可用性都会有一个人告警通知,方面我们及时了解消息,这里我做了一个简单的封装,方便大家使用! #!/usr/bin/env python # _*_ coding: utf-8 _*_ # @project ...

    前言:目前很多公司用的是企业微信或者钉钉,对于服务的可用性都会有一个告警通知,方面我们及时了解信息,这里我做了一个简单的封装,方便大家使用!

    #!/usr/bin/env python
    # _*_ coding: utf-8 _*_
    # @project : dadi-api-platform
    # @File    : send_notify.py
    # @Date    : 2021/2/23 11:28 上午
    # @Author  : 李文良
    import requests
    import time
    import hmac
    import hashlib
    import base64
    import urllib.parse
    
    
    def send_wxwork_notify_markdown(content, api_key, headers=None):
        if headers is None:
            headers = {'Content-Type': 'application/json'}
        hook_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}".format(api_key)
        data = {"msgtype": "markdown",
                "markdown": {
                    "content": "{}".format(content)
                }}
        notify_res = requests.post(url=hook_url, json=data, headers=headers)
        return notify_res
    
    
    def send_wxwork_notify_text(content, mentioned_mobile_list, api_key, headers=None):
        if headers is None:
            headers = {'Content-Type': 'application/json'}
        if not mentioned_mobile_list or not isinstance(mentioned_mobile_list, list):
            raise TypeError("输入的手机号应该是一个列表!")
        hook_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}".format(api_key)
        data = {"msgtype": "text",
                "text": {
                    "content": "{}".format(content),
                    "mentioned_mobile_list": mentioned_mobile_list
                }}
        notify_res = requests.post(url=hook_url, json=data, headers=headers)
        return notify_res
    
    
    def send_ding_talk_notify_markdown(content_title, content_text, access_token, at_mobiles=[], secret=None, headers=None):
        if headers is None:
            headers = {'Content-Type': 'application/json'}
        hook_url = "https://oapi.dingtalk.com/robot/send?access_token={}".format(access_token)
        if secret:
            timestamp, sign = generate_timestamp_and_sign(secret)
            hook_url = "https://oapi.dingtalk.com/robot/send?access_token={}&timestamp={}&sign={}".format(access_token,
                                                                                                          timestamp, sign)
        data = {
            "msgtype": "markdown",
        }
        if at_mobiles and "@all" in at_mobiles:
            data['markdown'] = {
                "title": "{} @all".format(content_title),
                "text": "{} @all".format(content_text)
            }
            data['at'] = {
                "atMobiles": at_mobiles,
                "isAtAll": True
            }
        elif at_mobiles and "@all" not in at_mobiles:
            if len(at_mobiles) > 1:
                at_mobiles_str = "@".join(at_mobiles)
                at_mobiles_str = "@{}".format(at_mobiles_str)
            else:
                at_mobiles_str = "@{}".format(at_mobiles[0])
            data['markdown'] = {
                "title": "{} {}".format(content_title, at_mobiles_str),
                "text": "{} {}".format(content_text, at_mobiles_str)
            }
            data['at'] = {
                "atMobiles": at_mobiles,
                "isAtAll": False
            }
        notify_res = requests.post(url=hook_url, json=data, headers=headers)
        return notify_res
    
    
    def generate_timestamp_and_sign(secret):
        timestamp = str(round(time.time() * 1000))
        secret_enc = secret.encode('utf-8')
        string_to_sign = '{}\n{}'.format(timestamp, secret)
        string_to_sign_enc = string_to_sign.encode('utf-8')
        hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
        sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
        return timestamp, sign
    
    
    if __name__ == "__main__":
        now_time = time.strftime("%Y-%m-%d %H:%M:%S")
        H5_URL = [
            'https://staging.airdoc.com/user/report/xYwZ08fWMzCixeOG3%2BMNRlzgaetiA30LtGBqj%2BjK8qD0OUiVdfBLKilRThZnP8gd',
            'https://staging.airdoc.com/user/report/%2F52BwBuKeO3SAWrk1459MYSQQ4t5FRUMSEI9vpfoQAaESxwr9I%2Fnp199qfY5LHKe',
            'https://staging.airdoc.com/user/report/SJEEz9rBe33UAl7iTo3DZA6Y2wvrYR2PBSk1BTPAjKVrmZQjgmWty5W7ZMuxpyzN']
        PDF_URL = [
            'https://staging.airdoc.com/user/report/xYwZ08fWMzCixeOG3%2BMNRlzgaetiA30LtGBqj%2BjK8qD0OUiVdfBLKilRThZnP8gd',
            'https://staging.airdoc.com/user/report/%2F52BwBuKeO3SAWrk1459MYSQQ4t5FRUMSEI9vpfoQAaESxwr9I%2Fnp199qfY5LHKe',
            'https://staging.airdoc.com/user/report/SJEEz9rBe33UAl7iTo3DZA6Y2wvrYR2PBSk1BTPAjKVrmZQjgmWty5W7ZMuxpyzN']
    
        notify_title = '接口测试通知'
        content = "**{}**\n\n" \
                  "测试用例1信息如下:\n\nH5_URL: **{}**\n\nPDF_URL: **{}**\n\n" \
                  "测试用例2信息如下:\n\nH5_URL: **{}**\n\nPDF_URL: **{}** \n\n" \
                  "测试用例3信息如下:\n\nH5_URL: **{}**\n\nPDF_URL: **{}** \n\n" \
                  "报告生成时间: **{}** \n\n".format(notify_title, H5_URL[0], PDF_URL[0], H5_URL[1], PDF_URL[1], H5_URL[2],
                                               PDF_URL[2], now_time)
        notify_res = send_ding_talk_notify_markdown(notify_title, content,
                                                    "246ca8e0c8fd55d8949dd484eb4aae1d6675565e45e321f51744ce2973fe7d5c8f6",
                                                    [1577925XXXX],
                                                    "SEC00db279767bb3929bfa7dd86c139370ce65651a1cc189303c966524b553fcef1cc51")
        print(notify_res.text)
        pass
    
    
    展开全文
  • 主要介绍了微信开发 消息推送实现代码的相关资料,需要的朋友可以参考下
  • 微信消息推送详解

    千次阅读 2017-06-28 16:00:09
    微信模版消息推送详解 应用企业注册微信公众号并认证https://mp.weixin.qq.com 登录微信公众号获取appID和appsecret本次使用的测试帐号进行说明   扫码关注和新建消息模版拿到openid作为我们推送的对象  ...
    

    微信模版消息推送详解

    1. 应用企业注册微信公众号并认证https://mp.weixin.qq.com

    2. 登录微信公众号获取appIDappsecret本次使用的测试帐号进行说明

       

    3. 扫码关注和新建消息模版拿到openid作为我们推送的对象

       

      4、查看官方开发文档https://mp.weixin.qq.com/debug/cgi-bin/readtmpl?t=tmplmsg/faq_tmpl

       

    1. 开始撸代码

      创建工具类

      TestWechatMsg.java

       

       

      package testWeb;

       

      import java.io.BufferedReader;

      import java.io.IOException;

      import java.io.InputStreamReader;

      import java.io.OutputStreamWriter;

      import java.net.HttpURLConnection;

      import java.net.MalformedURLException;

      import java.net.URL;

      import java.net.URLConnection;

      import java.util.HashMap;

      import java.util.Map;

       

      import com.alibaba.fastjson.JSON;

       

      import testWeb.bean.WechatSendMsg;

      import testWeb.bean.WechatSendMsgBody;

      import testWeb.bean.WechatSendMsgData;

       

      public class TestWechatMsg {

       

      private static String TEST_APPID = "wxa1d64a418271a654";

      private static String TEST_APPSECRET = "bd814671571d837e287ee10887a77fc1";

      private static String WECHART_URL_TOKEN = "https://api.weixin.qq.com/cgi-bin/token";

      private static String WECHART_URL_SEND_TEMPLATE_MSG = "https://api.weixin.qq.com/cgi-bin/message/template/send";

      private static String OPEN_ID_1 = "oDfGiwEHCvsUQDl-nytTEzLVf9rA";

      private static String TEMPLATE_ID = "N6rCGkAPQa6W_0l32lVBtLwhhXEDfmA5oDX6kPHU_bg";

      private static String TOP_COLOR = "#FF0000";

      private static String GO_URL = "http://weixin.qq.com/download";

       

      public static void main(String[] args) {

      String tokenStr = getAccessToken();

      Map<String, String> dataMap = new HashMap<String, String>();

      dataMap.put("barcode", "000000211");

      dataMap.put("status", "已发车");

      dataMap.put("payment", "500");

      dataMap.put("goodspaystatus", "已支付");

      dataMap.put("postage", "50");

      dataMap.put("paystatus", "已支付");

      String result = sendWechatTempMsg(tokenStr, OPEN_ID_1, GO_URL, dataMap);

      System.out.println(result);

      }

       

      public static String doPostRequest(String urlStr, String data) {

      StringBuffer answer = new StringBuffer();

      // Build parameter string

      try {

      // Send the request

      URL url = new URL(urlStr);

      URLConnection conn = url.openConnection();

      conn.setDoOutput(true);

      OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());

      // write parameters

      writer.write(data);

      writer.flush();

      // Get the response

      BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));

      String line;

      while ((line = reader.readLine()) != null) {

      answer.append(line);

      }

      writer.close();

      reader.close();

      } catch (MalformedURLException ex) {

      ex.printStackTrace();

      } catch (IOException ex) {

      ex.printStackTrace();

      }

      return answer.toString();

      }

       

      public static String doGetRequest(String urlStr, String data) {

      String res = "";

      // Build parameter string

      try {

      BufferedReader rd = null;

      // Send the request

      URL url = new URL(urlStr + "?" + data);

      HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

      urlConnection.connect();

      rd = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));

      /*

       * while (rd.read() != -1) { res = rd.readLine();

       * //res=URLDecoder.decode(res,"UTF-8"); }

       */

      String line;

      while ((line = rd.readLine()) != null) {

      res += line;

      }

      rd.close();

      System.out.println(res);

      return res;

      } catch (MalformedURLException ex) {

      ex.printStackTrace();

      } catch (IOException ex) {

      ex.printStackTrace();

      }

       

      return res;

      }

       

      public static String getAccessToken() {

      String data = "grant_type=client_credential" + "&appid=" + TEST_APPID + "&secret=" + TEST_APPSECRET;

      String res = doGetRequest(WECHART_URL_TOKEN, data);

      Map<String, Object> dataMap = new HashMap<String, Object>();

      dataMap = JSON.parseObject(res);

      return (String) dataMap.get("access_token");

      }

       

      public static String sendWechatTempMsg(String accessToken, String openid, String url, Map<String, String> dataMap) {

      String result = null;

      String data = "access_token=" + accessToken;

      String sendMsg = getSendMsg(openid, url, dataMap);

      result = doPostRequest(WECHART_URL_SEND_TEMPLATE_MSG + "?" + data, sendMsg);

      return result;

      }

       

      public static String getSendMsg(String openid, String url, Map<String, String> dataMap) {

      WechatSendMsgBody msgBody = new WechatSendMsgBody();

      msgBody.setTouser(openid);

      msgBody.setTemplate_id(TEMPLATE_ID);

      msgBody.setTopcolor(TOP_COLOR);

      msgBody.setUrl(url);

      WechatSendMsgData data = new WechatSendMsgData();

      WechatSendMsg barcode = new WechatSendMsg();

      barcode.setValue(dataMap.get("barcode"));

      WechatSendMsg status = new WechatSendMsg();

      status.setValue(dataMap.get("status"));

      WechatSendMsg payment = new WechatSendMsg();

      payment.setValue(dataMap.get("payment"));

      WechatSendMsg goodspaystatus = new WechatSendMsg();

      goodspaystatus.setValue(dataMap.get("goodspaystatus"));

      WechatSendMsg postage = new WechatSendMsg();

      postage.setValue(dataMap.get("postage"));

      WechatSendMsg paystatus = new WechatSendMsg();

      paystatus.setValue(dataMap.get("paystatus"));

      data.setBarcode(barcode);

      data.setGoodspaystatus(goodspaystatus);

      data.setPayment(payment);

      data.setPaystatus(paystatus);

      data.setPostage(postage);

      data.setStatus(status);

      msgBody.setData(data);

      return JSON.toJSONString(msgBody);

      }

       

      }

       

    2. 封装对象后转换成json传递给微信平台发信息

        WechatSendMsgBody.java  消息体

    package testWeb.bean;

    import java.io.Serializable;
    import java.util.List;


    public class WechatSendMsgBody implements Serializable {


     /**
      *
      */
     private static final long serialVersionUID = 1L;
     //发送对象的
     private String touser;
     //消息模版id
     private String template_id;
     //消息链接url
     private String url;
     //标题颜色
     private String topcolor;
     //内容数据
     private WechatSendMsgData data;
     public String getTouser() {
      return touser;
     }
     public void setTouser(String touser) {
      this.touser = touser;
     }
     public String getTemplate_id() {
      return template_id;
     }
     public void setTemplate_id(String template_id) {
      this.template_id = template_id;
     }
     public String getUrl() {
      return url;
     }
     public void setUrl(String url) {
      this.url = url;
     }
     public String getTopcolor() {
      return topcolor;
     }
     public void setTopcolor(String topcolor) {
      this.topcolor = topcolor;
     }
     public WechatSendMsgData getData() {
      return data;
     }
     public void setData(WechatSendMsgData data) {
      this.data = data;
     }
    }

    WechatSendMsgData.java   消息数据

    package testWeb.bean;

    import java.io.Serializable;

    public class WechatSendMsgData implements Serializable {

     /**
      *
      */
     private static final long serialVersionUID = 1L;
     
     private WechatSendMsg barcode;
     private WechatSendMsg status;
     private WechatSendMsg payment;
     private WechatSendMsg goodspaystatus;
     private WechatSendMsg postage;
     private WechatSendMsg paystatus;
     
     
     public WechatSendMsg getBarcode() {
      return barcode;
     }
     public void setBarcode(WechatSendMsg barcode) {
      this.barcode = barcode;
     }
     public WechatSendMsg getStatus() {
      return status;
     }
     public void setStatus(WechatSendMsg status) {
      this.status = status;
     }
     public WechatSendMsg getPayment() {
      return payment;
     }
     public void setPayment(WechatSendMsg payment) {
      this.payment = payment;
     }
     public WechatSendMsg getGoodspaystatus() {
      return goodspaystatus;
     }
     public void setGoodspaystatus(WechatSendMsg goodspaystatus) {
      this.goodspaystatus = goodspaystatus;
     }
     public WechatSendMsg getPostage() {
      return postage;
     }
     public void setPostage(WechatSendMsg postage) {
      this.postage = postage;
     }
     public WechatSendMsg getPaystatus() {
      return paystatus;
     }
     public void setPaystatus(WechatSendMsg paystatus) {
      this.paystatus = paystatus;
     }
    }

    WechatSendMsg.java 数据内容颜色

    package testWeb.bean;

    import java.io.Serializable;

    public class WechatSendMsg implements Serializable {

     /**
      *
      */
     private static final long serialVersionUID = 1L;
     private String value;
     private String color="#173177";
     public String getValue() {
      return value;
     }
     public void setValue(String value) {
      this.value = value;
     }
     public String getColor() {
      return color;
     }
     public void setColor(String color) {
      this.color = color;
     } 
    }


    总结微信消息推送主要还是通过微信api进行get或者Post请求进行消息好发送类似于短信发送

    正式公众号openid获得方式请查看微信官方开发文档 

    1. https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

       

       

    
    展开全文
  • c#微信企业号推送消息,亲测通过-4TU.rar c#微信企业号推送消息,亲测通过-4TU.rar
  • 企业微信消息推送

    千次阅读 2020-06-29 11:17:33
    开发前准备:添加自建应用 登录企业微信管理端 -> 应用与小程序 -> 应用 ->... 创建完成后,在管理端的应用列表里进入...消息推送分为两步: 1获取access_token 2.构造消息体,发送消息 话不多说,直接放代.

    开发前准备:添加自建应用

    登录企业微信管理端 -> 应用与小程序 -> 应用 -> 自建,点击“创建应用”,设置应用logo、应用名称等信息,创建应用。
    创建完成后,在管理端的应用列表里进入该应用,可以看到agentid、secret等信息,这些信息在使用企业微信API时会用到。
    创建完成后,该应用会自动出现在可见范围内的成员的企业微信终端上(包括手机端、pc端、微工作台)

     

    消息推送分为两步:

    1获取access_token

    2.构造消息体,发送消息

    话不多说,直接放代码:

    public class SendWeChatMessage {
    
        private static String corpid = "你自己的corpid";
    
        private static String corpsecret = "你自己的corpsecret";
    
        // 获取访问权限码(access_token)URL  GET请求
        private final static String ACCESS_TOKEN_URL = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=CORPID&corpsecret=CORPSECRET";
        // 发送消息URL POST请求
        private final static String CREATE_SESSION_URL = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=";
        // 获取企业微信用户userid POST请求
        private final static String GET_USER_ID = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserid?access_token=";
    
        //1.获取access_token
        public static String getAccessToken() {
            RestTemplate restTemplate = new RestTemplate();
            //官方获取access_token的url
            String url = ACCESS_TOKEN_URL.replaceAll("CORPID",corpid).replaceAll("CORPSECRET", corpsecret );
            JSONObject jsonObject = restTemplate.getForObject(url, JSONObject.class);
            String accessToken = jsonObject.getString("access_token");
            return accessToken;
        }
    
        //获取用户的id
        public static String getUserId(String employeePhone) {
            //获取access_token
            String ACCESS_TOKEN = getAccessToken();
    
            StringBuffer sb = new StringBuffer();
            sb.append("{");
            sb.append("\"mobile\":" + "\"" + employeePhone + "\",");
            sb.append("}");
            String json = sb.toString();
            String result = "";
            String url = GET_USER_ID + ACCESS_TOKEN;
            try {
                HttpsURLConnection http = getHttp(url);
                OutputStream os = http.getOutputStream();
                os.write(json.getBytes("UTF-8"));
                InputStream is = http.getInputStream();
                int size = is.available();
                byte[] jsonBytes = new byte[size];
                is.read(jsonBytes);
                result = new String(jsonBytes, "UTF-8");
                System.out.println("==========result==" + result);
                System.out.println("请求返回结果:" + result);
                os.flush();
                os.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            JSONObject jsonObject = JSONObject.parseObject(result);
            return jsonObject.getString("userid");
        }
    
        //2.构造消息体,并发送消息
        public static void sendWeChatMessage(String employeePhone, String toparty, String totag, String content) {
            //获取access_token
            String ACCESS_TOKEN = getAccessToken();
            Logger.info("ACCESS_TOKEN=====" + ACCESS_TOKEN);
            //获取userId
            String touser = getUserId(employeePhone);
            StringBuffer sb = new StringBuffer();
            //构造消息体
            sb.append("{");
            sb.append("\"touser\":" + "\"" + touser + "\",");
            sb.append("\"toparty\":" + "\"" + toparty + "\",");
            sb.append("\"totag\":" + "\"" + totag + "\",");
            sb.append("\"msgtype\":" + "\"" + "text" + "\",");
            sb.append("\"agentid\":" + "\"" + "1000002" + "\",");
            sb.append("\"text\":" + "{");
            sb.append("\"content\":" + "\"" + content + "\"},");
            sb.append("\"debug\":" + "\"" + "1" + "\"");
            sb.append("}");
    
            //请求链接
            String action = CREATE_SESSION_URL + ACCESS_TOKEN;
            String json = sb.toString();
            try {
                HttpsURLConnection http = getHttp(action);
                OutputStream os = http.getOutputStream();
                os.write(json.getBytes("UTF-8"));
                InputStream is = http.getInputStream();
                int size = is.available();
                byte[] jsonBytes = new byte[size];
                is.read(jsonBytes);
                String result = new String(jsonBytes, "UTF-8");
                System.out.println("请求返回结果:" + result);
                os.flush();
                os.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static HttpsURLConnection getHttp(String action) throws Exception {
            URL url = null;
            HttpsURLConnection http = null;
            try {
                url = new URL(action);
                http = (HttpsURLConnection)url.openConnection();
                http.setRequestMethod("POST");
                http.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
                http.setDoOutput(true);
                http.setDoInput(true);
                //连接超时30秒
                System.setProperty("sun.net.client.defaultConnectTimeout", "30000");
                //读取超时30秒
                System.setProperty("sun.net.client.defaultReadTimeout", "30000");
                http.connect();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return http;
        }
    
    }

    备注:因为公司用的play,我也第一次用,里面处理的post请求不太好,如果用的主流spring,springboot等,大家可以HttpClient处理,具体的网上去搜吧。

    展开全文
  • thinkphp 5.0 对接微信公众号,向指定用户发送模板消息
  • 主要介绍了php实现微信公众号主动推送消息的方法,PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息限制,需要的朋友可以参考下
  • 1 WeChatMessageUtil 企业微信消息工具类。... /** * 企业微信消息工具类 */ public class ... 企业微信 消息推送使用(新建应用、发送消息) (2)weChatMessageService源码请查看以下博客。 Java 实现企业微信消息推送

    1 WeChatMessageUtil

    企业微信消息工具类。

    package com.util;
    
    /**
     * 企业微信消息工具类
     */
    public class WeChatMessageUtil {
        /**
         * 获取文本消息JSON数据
         *
         * @param userId  用户ID(可多个,多个用逗号隔开)
         * @param content 消息内容
         * @param agentId 应用ID
         * @return
         */
        public static String getTextMessageJson(String userId, String content, String agentId) {
            //构造消息体
            StringBuffer sb = new StringBuffer();
            sb.append("{");
            sb.append(" \"touser\":\"" + userId + "\",");
            sb.append(" \"msgtype\":\"text\",");
            sb.append(" \"agentid\":\"" + agentId + "\",");
            sb.append(" \"text\":{");
            sb.append("     \"content\":\"" + content + "\"");
            sb.append(" },");
            sb.append(" \"safe\":\"0\"");
            sb.append("}");
            return sb.toString();
        }
    
        /**
         * 获取文本卡片消息JSON数据
         *
         * @param userId  用户ID(可多个,多个用逗号隔开)
         * @param title   标题
         * @param content 消息内容
         * @param agentId 应用ID
         * @param url     跳转链接
         * @param btnTxt  按钮内容
         * @return
         */
        public static String getTextCardMessageJson(String userId, String title, String content, String agentId, String url
                , String btnTxt) {
            //构造消息体
            StringBuffer sb = new StringBuffer();
            sb.append("{");
            sb.append(" \"touser\":\"" + userId + "\",");
            sb.append(" \"msgtype\":\"textcard\",");
            sb.append(" \"agentid\":\"" + agentId + "\",");
            sb.append(" \"textcard\" : {");
            sb.append("     \"title\" : \"" + title + "\",");
            sb.append("     \"description\" : \"" + content + "\",");
            sb.append("     \"url\" : \"" + url + "\",");
            sb.append("     \"btntxt\":\"" + btnTxt + "\"");
            sb.append(" }");
            sb.append(" \"safe\":\"1\"");
            sb.append("}");
            return sb.toString();
        }
    
    }

    2 文本消息

    2.1 调试代码

        /**
         * 发送文本消息
         *
         * @return
         */
        @GetMapping("/sendTextMessage")
        public String sendTextMessage() {
            //初始化token
            String token = weChatMessageService.getAccessToken();
            String phone = "15573967198";
            //得到userId
            String userId = weChatMessageService.getUserId(token, phone);
            String content = userId + ",你好";
            //构造消息体
            String message = WeChatMessageUtil.getTextMessageJson(userId, content, weChatMessageService.getAgentId());
            //发送消息
            return weChatMessageService.sendMessage(token, message);
        }

    2.2 调试结果

    3 文本卡片

    3.1 调试代码

        /**
         * 发送文本卡片消息
         *
         * @return
         */
        @GetMapping("/sendTextCardMessage")
        public String sendTextCardMessage() {
            //初始化token
            String token = weChatMessageService.getAccessToken();
            String phone = "15573967198";
            //得到userId
            String userId = weChatMessageService.getUserId(token, phone);
            String content = userId + ",你好";
            String url = "https://blog.csdn.net/qq_38974638";
            //构造消息体
            String message = WeChatMessageUtil.getTextCardMessageJson(userId, "通知", content, weChatMessageService.getAgentId(), url, "详情");
            //发送消息
            return weChatMessageService.sendMessage(token, message);
        }

    3.2 最终效果图

    注:

    (1)企业微信的消息推送配置请查看以下博客。

    企业微信 消息推送使用(新建应用、发送消息)

    (2)weChatMessageService源码请查看以下博客。

    Java 实现企业微信消息推送

    展开全文
  • springboot实现微信模板消息推送,包含微信端代码。简单封装,方便二次开发!
  • springboot实现微信公众号模版消息推送,用的是构架:springboot+redis,详细教程:https://blog.csdn.net/chenhongming888/article/details/95173079
  • 企业微信消息推送接口大全

    千次阅读 2018-12-13 17:10:46
    该接口主要提供企业微信消息推送的,并且是基于nginx请求转发的,如果直接调用企业微信的接口,此接口不适用
  • c#winform开发微信企业号推送文本消息,图片,图文,视频,语音等消息
  • C# 企业微信消息推送

    万次阅读 热门讨论 2018-03-29 17:25:50
    企业微信开发API文档链接。 第一步 注册企业微信 ...第四步 写代码实现App内推送消息 新建项目(本文以类库项目为例) 在实际项目项目中引用时,需配置一下关键值。 CorpSendBase:企业号发送消息的基...
  • 1、通过企业微信,获取对应的accs_token 2、向企业微信发送对应的消息
  • java二次开发接微信公众号接口,实现根据用户授权,获取用户code,再获取openid,然后向其推送模版消息
  • 使用IPad协议实现原理
  • 第一步,登录企业微信管理端。 https://work.weixin.qq.com/nl/sem/registe?s=c&from=1014309098&bd_vid=7035179229137931704 第二步,点击创建应用。 第三步,上传logo,输入应用名称,点击创建应用...
  • C# 企业微信消息推送对接

    千次阅读 2019-11-25 16:12:49
    四:需要消息推送,就需要企业微信用户的UserID。 ①:管理员先把用户拉进自建应用,不拉进应用,则无权限访问该自建应用。 ②:需要加上域名授权 ②:身份验证。我这边根据自身的应用场景,选择了对接扫码授权...
  • 本课程将带领大家使用java实现微信公号和小程序的推送功能。 本节课你能学到以下知识点 1, 实战入门java后台的开发 2,学会springboot 3,微信公号模版推送功能的实现 4,小程序推送的实现 5,入门小程序开发...
  • Python微信消息推送

    千次阅读 2020-12-24 11:10:59
    本文教你简单实现Python调用微信消息推送
  • 实现 SQL SERVER 数据库中的微信推送功能,可以将一些报警消息发送到微信讨论组或者微信订阅号、公众号、服务号,需要有认证的微信订阅号或者微信服务号
  • wechat_pusher:Go 实现的微信模板消息推送服务
  • 微信接收不到企业微信消息推送

    千次阅读 2020-02-25 18:57:20
    使用微信提供的接口,给公司微信企业号的相关人员推送消息时。 一般是微信端的企业号和企业微信都能接收到推送的消息,但有一次企业微信版本更新后发现微信端的推送消息没有接收到。 原因找了很久,最终发现在企业...
  • 第一步:附加数据库 第二步:根据说明文档,在表中按指定的规定写入数据即可。 2020-03-18更新: 几年前发的资源,今天才想起来看看,原来当初还加密了的。实在不好意思,现将加密部分补充发出来。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,605
精华内容 33,442
关键字:

微信消息推送