javaDingTalkClient_java dingtalkclient

第三方接入钉钉详细流程

1. 钉钉向个人发送通知

登录钉钉开放平台

创建小程序应用

创建完后可得到AppKey、AppSecret等信息

添加出口IP,该IP为公网IP

添加开发人员

获取钉钉用户ID

登录钉钉后台管理界面,并进入通讯录,点击要发送的用户,选择“员工UserID”

代码demo

获取access_token

/**
 * 获取access_token工具类
 */
public class AccessTokenUtil {
    private static final Logger bizLogger = LoggerFactory.getLogger(AccessTokenUtil.class);

    public static String getToken() throws RuntimeException {
        try {
            DefaultDingTalkClient client = new DefaultDingTalkClient(URL_GET_TOKKEN);
            OapiGettokenRequest request = new OapiGettokenRequest();

            request.setAppkey(Constant.APPKEY);
            request.setAppsecret(Constant.APPSECRET);
            request.setHttpMethod("GET");
            OapiGettokenResponse response = client.execute(request);
            String accessToken = response.getAccessToken();
            return accessToken;
        } catch (ApiException e) {
            bizLogger.error("getAccessToken failed", e);
            throw new RuntimeException();
        }
    }
}

其中:

1. URL_GET_TOKKEN是“钉钉网关gettoken地址”:"
https://oapi.dingtalk.com/gettoken";

2. AppKey和AppSecret是第步中申请到的信息。

发送个人通知信息

String addr = "https://oapi.dingtalk.com/message/send?access_token=" + AccessTokenUtil.getToken();
String content = "{"
        + "\"touser\": \"" + "manager9533" +"\","   //发送用户ID,多个用,分割
        + "\"toparty\": \"\","   //发送部门ID,多个用,分割
        + "\"agentid\": \""+ "" +"\","  // 应用id
        + "\"msgtype\": \"text\","
        + "\"text\": {\"content\": \"" + System.currentTimeMillis() + "\"}"
        + "}";
result = HttpClientUtil.doPostJson(robotHookAddr, content);

注意:

1. content是固定格式,不能错;

2. 因发送消息过于频繁或超量而被流控过滤后实际未发送的userid。未被限流的接收者仍会被成功发送。限流规则包括:1、给同一用户发相同内容消息一天仅允许一次;2、如果是ISV接入方式,给同一用户发消息一天不得超过次;如果是企业接入方式,此上限为。

2钉钉向群发送信息

登录钉钉电脑版,获得钉钉机器人的webhook

选择一个群,点击右上角的设置,选择“智能群助手”

添加机器人

设置机器人名称和关键字

得到webhook的url

代码demo

String robotHookAddr = "https://oapi.dingtalk.com/robot/send?access_token= 8df13f2e3fc211b7c9237ad08f98e9019660276da19c816f4c0c8a6xxxxx";
String contentJson = "{ \"msgtype\": \"text\", \"text\": {\"content\": \"" + "alerthhhhhhhhhhh" + "\"}}";
String result = HttpClientUtil.doPostJson(robotHookAddr, contentJson);

注意:

1. access_token就是Webhook,直接拷贝过来就能用

2. contentJson内容格式固定,不要变更

3. contentJson中的content,必须以“关键字”开头。

原文链接:,转发请注明来源!