业务背景

有时候,程序的运行的异常状态,日常统计信息等需要有一个展示的地方。

可以是:

  • 邮件

  • 钉钉

  • 企业微信

  • 短信

等等,这里记录一下钉钉的 sdk 入门操作。

准备工作

建群

首先需要创建一个群。

如果只是测试,你可以先拉 2 个小伙伴创建一个群,可以把其他人踢掉,就可以创建好一个群了。

机器人

一个群可以添加 10 个机器人,一般是够用的。

钉钉有一些内置的机器人,我们选择自定义机器人,这样更加灵活。

这里为了简单,我选择的安全策略是指定关键词。此处为【测试】。

创建时,记录一下对应的密钥等信息。

代码编写

maven 引入

钉钉的所有请求可以认为就是 https 请求,不过有客户端可以简化一些操作。

<dependencies>
    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.4</version>
    </dependency>
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>alibaba-dingtalk-service-sdk</artifactId>
        <version>1.0.1</version>
    </dependency>
</dependencies>

codec 主要用于 sign 加密。

代码编写

public static void main(String[] args) throws ApiException {
    String url = "https://oapi.dingtalk.com/robot/send?access_token=xxx";
    DingTalkClient client = new DefaultDingTalkClient(url);
    OapiRobotSendRequest request = new OapiRobotSendRequest();
    // 指定 @ 的人
    OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
    at.setIsAtAll(true);
    request.setAt(at);
    // 以下是设置各种消息格式的方法
    sentText(request);
    OapiRobotSendResponse response = client.execute(request);
    System.out.println(response.getErrmsg());
}

private static void sentText(OapiRobotSendRequest request) {
    OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
    text.setContent("测试消息发送");
    request.setMsgtype("text");
    request.setText(text);
}

access_token 需要替换为我们对应的密钥。

直接运行就可以发送一个文本消息到群里。

参考资料

钉钉接入