java实现钉钉群机器人@机器人获取信息后,机器人回复

news2024/9/25 13:18:42
1.需求

鉴于需要使用钉钉群机器人回复,人们提出的问题,需要识别提出的问题中的关键词,后端进行处理实现对应的业务逻辑

2.实现方式

用户@群机器人,附带提出的问题,后端接收消息后识别消息内容,读取到关键词进行对应的业务逻辑操作后,机器人获取返回的信息后发消息到群中@到具体的人

官方文档地址:接收消息 - 钉钉开放平台

3.实现流程

创建机器人->配置机器人接收数据地址->开发接收消息后的业务逻辑->上线机器人->添加机器人到群组中

4.具体步骤及代码实现

(1)创建机器人。点击创建应用,填写应用名称、应用描述,创建完成后设置,服务器出口ip你的个任务武器地址,消息接收地址:你的机器人接收消息的接口,即当在群中@机器人时会调用本接口

 

 

 

(2)机器人接收消息的文档。

如图为接收消息接口的传参及参数分别代表的意思。

(3)示例代码

package com.wheel.back.model;

import cn.hutool.json.JSONObject;
import lombok.Data;

@Data
public class DemdITVo {

    //姓名
    private String senderNick;
    //回调的webhook
    private String sessionWebhook;
    //内容json content
    private JSONObject text;
    //加密ID 工单机器人
    private String chatbotUserId;
    //用户加密ID
    private String senderId;
    //群聊标题
    private String conversationTitle;
    //用户钉钉UserId
    private String senderStaffId;

}
package com.wheel.back.controller;

import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.wheel.back.model.DemdITVo;
import com.wheel.back.service.TestService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;

/**
 * @Description
 * @Author Li Qingyang
 * @Date 2022-11-08
 */
@Slf4j
@RestController
@RequestMapping("wheelTest")
public class TestController {

	@Resource
	private TestService testService;

	@PostMapping("/test")
	public String Test(@RequestBody DemdITVo params){
		JSONObject text = params.getText();
		Object content = (String)text.get("content");
		log.info("请求参数:" + content);

		String url = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxx";
		Map<String,Object> map1 = new HashMap<>();
		map1.put("content","你好是我, 是不一样的烟火"+content);
		Map<String,Object> map = new HashMap<>();
		map.put("msgtype", "text");
		map.put("text",map1);

		String post = HttpUtil.post(url, JSONUtil.toJsonPrettyStr(map));
		log.info(map.toString());
		return "成功!";
	}
}

(4)机器人的发布。

编写完成后代码发到自己服务器上运行后,将机器人上线,在自己的群聊中添加该机器人,即可使用

 

5.结论:

测试结果就不具体展示了就是@机器人后调用你的接口,接口中根据接受的内容进行具体的业务逻辑处理,然后返回到群中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/822484.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊、虾皮、Lazada、速卖通、阿里国际等跨境电商平台怎么获取优质评价?

在跨境电商平台上&#xff0c;产品的评价直接影响卖家账户的评定因素&#xff0c;同时也影响产品页面的曝光量和流量&#xff0c;从而对产品销量产生影响&#xff0c;因此&#xff0c;产品评价的重要性不言而喻&#xff0c;除了产品的图片、描述、详情、广告和站外推广&#xf…

Java throw和throws 关键字

在Java中&#xff0c;异常可以分为两种类型&#xff1a; 未检查的异常&#xff1a;它们不是在编译时而是在运行时被检查&#xff0c;例如&#xff1a;ArithmeticException&#xff0c;NullPointerException&#xff0c;ArrayIndexOutOfBoundsException&#xff0c;Error类下的异…

[Docker实现测试部署CI/CD----相关服务器的安装配置(2)]

目录 6、Jenkins安装配置安装jdk安装maven拉取镜像启动jenkins修改数据卷权限浏览器访问安装插件配置jenkins移动JDK和Maven配置JDK和Maven 6、Jenkins安装配置 Jenkins 是一个开源软件项目&#xff0c;是基于 Java 开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&…

MySQL 的解析器以及 MySQL8.0 做出的改进 | StoneDB技术分享 #2

设计&#xff1a;小艾 审核&#xff1a;丁奇 编辑&#xff1a;宇亭 作者&#xff1a;柳湛宇&#xff08;花名&#xff1a;乌淄&#xff09; 浙江大学-软件工程-在读硕士、StoneDB 内核研发实习生 一、MySQL 的解析器 MySQL 所使用的解析器&#xff08;即 Lexer 和 Parser …

⛳ Java多线程 一,线程基础

线程基础 ⛳ Java多线程 一&#xff0c;线程基础&#x1f43e; 一&#xff0c;线程基础&#x1f4ad; 1.1&#xff0c;什么是程序&#xff0c;进程&#xff0c;线程&#x1f3ed; 1.2&#xff0c;什么是并行和并发&#x1f463; 1.3&#xff0c;线程使用的场景&#x1f3a8; 1.…

Nginx 15分钟入门

1、反向代理和负载均衡 Nginx 反向代理 负载均衡 网站初期用户量较少的时候&#xff0c;一台服务器就够用&#xff0c;但是当大量用户注册&#xff0c;那么显然一台机器就不够了。如下图&#xff0c;我们把同一个项目部署在3台服务器上。那么问题又来了&#xff0c;用户A的请…

连锁门店新零售管理系统服务商,提供新零售商城一体化解决方案|亿发

新零售时代&#xff0c;客户需求和购物方式正在发生翻天覆地的变化&#xff0c;数字化运营服务成为连锁门店增强竞争力的有效工具。那么&#xff0c;我们该如何借助数字化力量&#xff0c;升级连锁门店的新零售运营服务&#xff0c;迎接未来的商业挑战呢&#xff1f;一、智慧新…

emWin - BMP图片显示

BmpCvt.exe 用途 利用BMP图片&#xff0c;进行GUI显示&#xff1b;ICON等图标都是小BMP图片&#xff0c;核心是将BMP图片&#xff0c;转成emWin支持的方式&#xff0c;最终显示到TFT屏上 使用BmpCvt.exe工具&#xff0c;将各个图片转成相应的C文件. emWin有关的工具&#xff…

P4780 Phi的反函数

题目 思路 φ(x)n 当指数均为1时n最小 证明&#xff1a;容斥原理 代码 #include<bits/stdc.h> using namespace std; #define int long long const int maxn1e9; int ansINT_MAX,n; bool f; map<int,bool> mp; bool is_prime(int n){if(n<1) return false;fo…

Web功能测试之表单、搜索测试

初入职场接触功能测试老是碰到以下情况不知道怎么写测试用例&#xff1a; 一个界面很多搜索条件怎么写用例&#xff1f; 下拉框测试如何考虑测试点&#xff1f; 上传要考虑哪些验证点&#xff1f;...... 所以这篇主要是整理关于web测试之表单、搜索测试的相关要点。 一、表…

个性定义轻松掌控,更适合PC玩家的游戏鼠标,雷柏VT350S体验

喜欢玩PC游戏的玩家都知道&#xff0c;一款好的鼠标可以在游戏中更加游刃有余&#xff0c;甚至扭转乾坤。但是&#xff0c;有线鼠标总是让人觉得不够灵活&#xff0c;无线鼠标又担心延迟和续航。那么&#xff0c;有没有一款无线鼠标既能满足游戏需求&#xff0c;操作又能随心所…

话费充值系话费直充系统源码支付快充慢充系统运营商接口

话费充值系话费直充系统源码支付快充慢充系统运营商接口

小程序学习(五):WXSS模板语法

1.什么是WXSS WXSS是一套样式语言,用于美化WXML的组件样式,类似于网页开发中的CSS 2.WXSS和CSS的关系 WXSS模板样式-rpx 3.什么是rpx尺寸单位 4.rpx的实现原理 5.rpx与px之间的单位换算* WXSS模板样式-样式导入 6.什么是样式导入 使用WXSS提供的import语法,可以导入外联的样式…

Spring-BeanFactory

Spring Spring是整个Java体系最核心的框架&#xff0c;没有之一。 核心类图结构 ApplicationContext ApplicationEventPublisher&#xff1a;提供了一种机制&#xff0c;用于通知应用程序中感兴趣的部分有关其执行过程中发生的特定事件。ListableBeanFactory&#xff1a;是S…

P3855 [TJOI2008] Binary Land(BFS)(内附封面)

[TJOI2008] Binary Land 题目背景 Binary Land是一款任天堂红白机上的经典游戏&#xff0c;讲述的是两只相爱的企鹅Gurin和Malon的故事。两只企鹅在一个封闭的迷宫中&#xff0c;你可以控制他们向上下左右四个方向移动。但是他们的移动有一个奇怪的规则&#xff0c;即如果你按…

cloudstack之basic network

本章则主要尝试basic network模式的使用。 基础环境搭建见cloudstack测试环境搭建 1、概念介绍 cloudstack的网络模式主要分为两种&#xff1a; basic network&#xff1a;一个zone中仅有一个guest network来承载客户虚拟机的流量&#xff0c;可以理解为一个简单的二层网络。…

【EI/SCOPUS征稿】2023年算法、图像处理与机器视觉国际学术会议(AIPMV2023)

2023年算法、图像处理与机器视觉国际学术会议&#xff08;AIPMV2023&#xff09; 2023 International Conference on Algorithm, Image Processing and Machine Vision&#xff08;AIPMV2023&#xff09; 2023年算法、图像处理与机器视觉国际学术会议&#xff08;AIPMV2023&am…

Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查

Django学习记录&#xff1a;使用ORM操作MySQL数据库并完成数据的增删改查 数据库操作 MySQL数据库pymysql Django开发操作数据库更简单&#xff0c;内部提供了ORM框架。 安装第三方模块 pip install mysqlclientORM可以做的事&#xff1a; 1、创建、修改、删除数据库中的…

maven如何打包你会吗?

1.新建一个maven项目&#xff0c;在main/java中建立Main类 public class Main {public static void main(String[] args) {System.out.println("hello java ...");} } 2.添加依赖&#xff0c;使其成为可执行包 <build><plugins><!--打包成为可执行包-…