Java给钉钉机器人发送消息

示例代码

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

/**
 * @author : 
 * @description
 * @date : 2023/11/27
 */
public abstract class MessageSender {

    Logger log = LoggerFactory.getLogger(MessageSender.class);

    final void send(String message) {
        try {
            URL url = new URL(getUrl());
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
            conn.setDoOutput(true);

            // 构建JSON格式的消息体
            String jsonMessage = "{\"msgtype\":\"text\",\"text\":{\"content\":\"" + message + "\"}}";

            log.info("msg => {}", jsonMessage);
            try (OutputStream os = conn.getOutputStream()) {
                byte[] input = jsonMessage.getBytes(StandardCharsets.UTF_8);
                os.write(input, 0, input.length);
            }

            int responseCode = conn.getResponseCode();
            if (responseCode == 200) {
                log.info("消息发送成功!");
            } else {
                log.info("消息发送失败,HTTP响应码:" + responseCode);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    abstract String getUrl();

}

机器人链接在添加机器人时获取

public class QuanDanSender extends MessageSender {

    @Override
    String getUrl() {
        return "https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    }
}

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Java发送钉钉消息可以通过调用钉钉开放平台的机器人API实现。 首先,需要创建一个钉钉机器人。在钉钉群里找到你想要发送消息的群,点击群设置,选择机器人管理,然后添加一个自定义机器人。选择自定义机器人之后,可以获得该机器人的Webhook地址,这个地址就是我们调用机器人API发送消息的接口。 接下来,在Java中,我们可以使用HTTP请求库,如HttpClient或OkHttp,来发送HTTP POST请求到该Webhook地址。 示例代码如下: ```java import okhttp3.*; import java.io.IOException; public class DingTalkRobot { public static void main(String[] args) { String webhook = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxx"; String content = "Hello, 钉钉机器人!"; // 消息内容 OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); // JSON格式的消息体 String jsonBody = "{\"msgtype\": \"text\", \"text\": {\"content\": \"" + content + "\"}}"; RequestBody body = RequestBody.create(jsonBody, mediaType); Request request = new Request.Builder() .url(webhook) .post(body) .build(); try { Response response = client.newCall(request).execute(); System.out.println(response.body().string()); } catch (IOException e) { e.printStackTrace(); } } } ``` 以上代码通过构造JSON格式的消息体,包括消息类型和消息内容,然后将其POST到钉钉机器人的Webhook地址。在try-catch块中,通过调用`response.body().string()`方法可打印出钉钉机器人的响应结果。 注意,代码中的`webhook`需要替换成你自己创建的钉钉机器人的Webhook地址。而且,你可能需要引入OkHttp库或HttpClient库,这取决于你选择使用的HTTP请求库。 通过上述方式,就可以使用Java发送钉钉机器人的群消息了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值