java实现钉钉群机器人@机器人获取信息后,机器人回复(机器人接收消息)

1.需求

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

2.实现方式

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

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

3.实现流程

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

4.具体步骤及代码实现

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

 

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

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

(3)机器人发送消息的文档。

机器人发送消息的类型就比较多了,可以发送图片、文本等,包括@人回复消息,结合上面的机器人接收消息就可以实现对应的智能对话。 文档地址:机器人发送消息的类型 - 钉钉开放平台

(4)示例代码

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 "成功!";
	}
}

(5)机器人的发布。

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

5.结论

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

扩展:除了对于指定命令自定义回答,群聊机器人也可用于对一些服务的预警功能及定时通知功能等,可以结合使用的场景进行对应的灵活组合开发。

猜你喜欢

转载自blog.csdn.net/qq_37764320/article/details/131953710