功能介绍
企业存在给特定群组自动推送消息的场景,例如,推送监控报警、运营内容等。在该类场景下,你可以在群组中添加自定义机器人,自定义机器人默认提供 webhook,通过服务端调用 webhook 地址,即可将外部系统的消息通知即时推送到群组中。
实现起来也非常简单,就是发一下 http 请求就可以了。
在群组中添加自定义机器人
操作步骤
- 进入目标群组,在群组右上角点击更多按钮,并点击 设置。
- 在右侧 设置 界面,点击 群机器人。
- 在 群机器人 界面点击 添加机器人。
在 添加机器人 对话框,找到 自定义机器人,并 添加。
- 设置自定义机器人的名称与描述,并点击 添加。
获取自定义机器人的 webhook 地址,并点击 完成。
成功添加机器人后,查看机器人对应的 webhook 地址。地址格式如下:
https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxxxxxxxxxx
- 测试调用自定义机器人的 webhook 地址,向所在群组发送消息。
用任意方式向 webhook 地址发起一个 HTTP POST 请求。
通过服务端 HTTP POST 请求方式调用 webhook 地址。
以 curl 指令为例,请求示例如下。
curl -X POST -H "Content-Type: application/json" -d '{"msg_type":"text","content":{"text":"request example"}}' https://open.feishu.cn/open-apis/bot/v2/hook/****
示例命令说明:
- 请求方式:POST
- 请求头:Content-Type: application/json
- 请求体: {"msg_type":"text","content":{"text":"request example"}}
- webhook 地址:https://open.feishu.cn/open-apis/bot/v2/hook/**** 为示例值,你在实际调用时需要替换为自定义机器人真实的 webhook 地址。
- 也可以用 postman 调用
示例如下:
代码
如下:
OkHttpUtil 是一个发送http请求的工具类,
详情见: https://www.cnblogs.com/expiator/p/17357647.html
OkHttp 也可以换成其他的 http 工具类。
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import okhttp3.OkHttpClient;
@Slf4j
public class MsgUtil {
public static String sendMsg(OkHttpClient okHttpClient, String url, String content) {
JSONObject contentJson = MsgUtil.getContentJson(content);
return OkHttpUtil.post(okHttpClient, url, contentJson);
}
/**
* 发信息
* @param url
* @param content
* @return
*/
public static String sendMsg(String url, String content) {
JSONObject contentJson = MsgUtil.getContentJson(content);
return OkHttpUtil.post(url, contentJson);
}
/**
* 发送的消息内容
* @param content
* @return
*/
public static JSONObject getContentJson(String content) {
JSONObject json = new JSONObject();
json.put("msg_type", "text");
JSONObject txtJson = new JSONObject();
txtJson.put("text", content);
json.put("content", txtJson);
return json;
}
}
官方文档
https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot
标签:自定义,JSONObject,群组,机器人,webhook,content,消息,推送 From: https://www.cnblogs.com/expiator/p/17502485.html