首页 > 其他分享 >对接企业微信,通过机器人发送群信息

对接企业微信,通过机器人发送群信息

时间:2024-07-01 17:02:16浏览次数:16  
标签:String title url 微信 机器人 对接 private import

1.自己创建一个群聊

2.通过右键群聊创建机器人

3.获取机器人webhook地址

4.查看企业微信的接口文档 

        由于我使用的是卡片模式,所以以下是基于卡片模式的编写,如选择其他可点击下方按钮进行查询群机器人配置说明 - 文档 - 企业微信开发者中心 (qq.com)

{
    "msgtype":"template_card",
    "template_card":{
        "card_type":"news_notice",
        "source":{
            "icon_url":"https://wework.qpic.cn/wwpic/252813_jOfDHtcISzuodLa_1629280209/0",
            "desc":"企业微信",
            "desc_color":0
        },
        "main_title":{
            "title":"欢迎使用企业微信",
            "desc":"您的好友正在邀请您加入企业微信"
        },
        "card_image":{
            "url":"https://wework.qpic.cn/wwpic/354393_4zpkKXd7SrGMvfg_1629280616/0",
            "aspect_ratio":2.25
        },
        "image_text_area":{
            "type":1,
            "url":"https://work.weixin.qq.com",
            "title":"欢迎使用企业微信",
            "desc":"您的好友正在邀请您加入企业微信",
            "image_url":"https://wework.qpic.cn/wwpic/354393_4zpkKXd7SrGMvfg_1629280616/0"
        },
        "quote_area":{
            "type":1,
            "url":"https://work.weixin.qq.com/?from=openApi",
            "appid":"APPID",
            "pagepath":"PAGEPATH",
            "title":"引用文本标题",
            "quote_text":"Jack:企业微信真的很好用~\nBalian:超级好的一款软件!"
        },
        "vertical_content_list":[
            {
                "title":"惊喜红包等你来拿",
                "desc":"下载企业微信还能抢红包!"
            }
        ],
        "horizontal_content_list":[
            {
                "keyname":"邀请人",
                "value":"张三"
            },
            {
                "keyname":"企微官网",
                "value":"点击访问",
                "type":1,
                "url":"https://work.weixin.qq.com/?from=openApi"
            },
            {
                "keyname":"企微下载",
                "value":"企业微信.apk",
                "type":2,
                "media_id":"MEDIAID"
            }
        ],
        "jump_list":[
            {
                "type":1,
                "url":"https://work.weixin.qq.com/?from=openApi",
                "title":"企业微信官网"
            },
            {
                "type":2,
                "appid":"APPID",
                "pagepath":"PAGEPATH",
                "title":"跳转小程序"
            }
        ],
        "card_action":{
            "type":1,
            "url":"https://work.weixin.qq.com/?from=openApi",
            "appid":"APPID",
            "pagepath":"PAGEPATH"
        }
    }
}

5.根据提供的请求体编写实体类

        有些写死的配置可以直接写死,灵活的配置可以抽取成配置yaml里

import lombok.Data;

import java.util.List;
import java.util.Map;

@Data
public class TemplateCard {

    private String card_type;

    private Source source;

    private MainTitle main_title;

    private List<Map<String, Object>> horizontal_content_list;

    private CardAction card_action;
    @Data
    public static class CardAction{
        private Integer type;

        private String url;
    }

    @Data
    public static class MainTitle{
        private String title;

        private String desc;
    }

    @Data
    public static class Source{
        private String icon_url="https://wework.qpic.cn/wwpic/252813_jOfDHtcISzuodLa_1629280209/0";

        private String desc="企业微信";

        private Integer desc_color=0;
    }
}


import lombok.Data;

@Data
public class MsgE {

    private TemplateCard template_card;

    private String msgtype;

}

6.编写配置类

qw:
  config:

    enabled:     //是否开启通知
      true 
    cardtype:    文本通知模版卡片下默认值
      text_notice
    title:       //标题
      
    url:        //点击卡片跳转地址
      
    msgtype:    //文本通知模版卡片类型
      template_card
    robotWebhook: //机器人的webhook
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "qw.config")
public class QWProperties {

    private Boolean enabled;

    private String cardtype;

    private String title;

    private String url;

    private String msgtype;

    private String robotWebhook;
}

7.编写工具类

        用的json工具类选择hutool就行,没有特别之处


import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.geelycv.ni.common.config.QWProperties;
import com.geelycv.ni.common.utils.JsonUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

@Component
@Slf4j
public class CompanyWxUtil {

    @Autowired
    private QWProperties qwProperties;


    public  void sendMsg(String orderId,String phone,String count){
        if (!qwProperties.getEnabled()){
            return;
        }
        HttpRequest request = HttpUtil.createPost(qwProperties.getRobotWebhook());
        TemplateCard textCard = new TemplateCard();

        textCard.setCard_type(qwProperties.getCardtype());
        textCard.setSource(new TemplateCard.Source());

        TemplateCard.MainTitle mainTitle = new TemplateCard.MainTitle();
        mainTitle.setTitle(qwProperties.getTitle());
        textCard.setMain_title(mainTitle);

        ArrayList<Map<String,Object>> maps = new ArrayList<>();
        addHorizontalContentList("单号",orderId,maps);
        addHorizontalContentList("下单人手机号",phone,maps);
        addHorizontalContentList("金额",count,maps);
        textCard.setHorizontal_content_list(maps);

        TemplateCard.CardAction cardAction = new TemplateCard.CardAction();
        cardAction.setType(1);
        cardAction.setUrl(qwProperties.getUrl());
        textCard.setCard_action(cardAction);

        MsgE msgE = new MsgE();
        msgE.setTemplate_card(textCard);
        msgE.setMsgtype(qwProperties.getMsgtype());

        log.info("请求的json为{}",JsonUtils.toJsonString(msgE));
        request.body(JsonUtils.toJsonString(msgE));
        HttpResponse execute = request.execute();
        Integer errcode = (Integer) JsonUtils.parseMap(execute.body()).get("errcode");
        if (errcode==0){
            log.info("企业微信消息发送成功");
        }else {
            log.info("企业微信消息发送失败,返回信息为{}",execute.body());
        }
    }

    private void addHorizontalContentList(String keyname,String value,ArrayList<Map<String,Object>> maps){
        HashMap<String, Object> map = new HashMap<>();
        map.put("keyname",keyname);
        map.put("value",value);
        maps.add(map);
    }
}

标签:String,title,url,微信,机器人,对接,private,import
From: https://blog.csdn.net/weixin_54206833/article/details/140104510

相关文章

  • springboot校企对接实习管理系统 毕业设计-附源码11959
    摘 要校企合作实习是一种重要的实践教学模式,但是在实际的推行过程中,存在许多管理问题。其中包括远程指导困难、学生管理困难、校企信息沟通不畅等问题一直困扰着校方负责管理实习的教师们。随着互联网系统开发技术的发展,应用web技术开发B/s模式的实习管理系统,根据用户需......
  • 使用 ROS2的多机器人探索
    原文链接:https://www.youtube.com/watch?v=J0RZP_xJ3XA ThisvideoshowsademonstrationoftheSOSproject,dedicatedtoforestfiredetectionusingafleetofrobots.Severalimportantissuesareaddressed.这段视频展示了SOS项目的演示,该项目致力于使用机器人......
  • php 获取微信用户的openId
    //这里的code是通过前端页面获取的//$appid="公众号在微信的appid";//$secret="公众号在微信的appsecret";publicfunctionuserOpenId($appid,$secret,$code){$url="https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$secret&......
  • 搭建微信小程序
              在开发小程序之前,您需要先注册微信小程序。进入小程序页面,单击前往注册,根据指引填写信息和提交相应的资料,点击注册,完成账号申请。使用申请的微信公众平台账号登录小程序后台,单击开发管理>开发设置,可以看到小程序的AppID,......
  • uniapp+thinkphp5实现微信登录
    前言之前做了微信登录,所以总结一下微信授权登录并获取用户信息这个功能的开发流程。配置1.首先得在微信公众平台申请一下微信小程序账号并获取到小程序的AppID和AppSecrethttps://mp.weixin.qq.com/cgi-bin/loginpage?url=%2Fwxamp%2Fwacodepage%2Fgetcodepage%3Ftoken%3D4180......
  • QQ机器人开发教程:智能群聊助手
    随着社交媒体的普及,QQ群已成为人们日常生活中重要的交流平台。本文将介绍如何开发一款智能的QQ机器人,作为群聊助手,提供便捷的服务和娱乐功能。一、开发环境搭建首先,需要搭建开发环境。安装Python解释器,并配置好相关的开发工具和库。同时,需要申请一个QQ号作为机器人的登录账......
  • MQTT + 微信小程序:打造你的掌上ESP32智能鱼缸,远程监控,实时掌控
    一、项目概述厌倦了传统鱼缸的繁琐管理?想要随时随地了解鱼儿的生活状态?本项目将带你使用ESP32开发板、MQTT通信协议和微信小程序,打造一个功能完善的智能鱼缸系统。实时监测水温、远程控制灯光、定时定量喂食……一切尽在掌握!二、系统架构本系统采用典型的物联网架构,......
  • 基于java语言+springboot技术架构开发的 互联网智能3D导诊系统源码支持微信小程序、AP
    基于java语言+springboot技术架构开发的互联网智能3D导诊系统源码支持微信小程序、APP医院AI智能导诊系统源码一、智慧导诊系统开发原理导诊系统从原理上大致可分为基于规则模板和基于数据模型两类。1、基于规则推理的方法通过人工建立症状、疾病和科室之间的对应规则实......
  • 【计算机毕业设计】064基于微信小程序考研论坛设计
    ......
  • 【计算机毕业设计】068电影院订票选座微信小程序
    ......