1.6 获取钉钉用户ID
登录钉钉后台管理界面,并进入通讯录,点击要发送的用户,选择“员工UserID”
1.7 代码demo
1.7.1 获取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是第1.3步中申请到的信息。
1.7.2 发送个人通知信息
String addr = "https://oapi.dingtalk.com/message/send?access_token=" AccessTokenUtil.getToken();
String content = "{"
"\"touser\": \"" "manager9533" "\"," //发送用户ID,多个用,分割
"\"toparty\": \"\"," //发送部门ID,多个用,分割
"\"agentid\": \"" "1179163037" "\"," // 应用id
"\"msgtype\": \"text\","
"\"text\": {\"content\": \"" System.currentTimeMillis() "\"}"
"}";
result = HttpClientUtil.doPostJson(robotHookAddr, content);
注意:
1. content是固定格式,不能错;
2. 因发送消息过于频繁或超量而被流控过滤后实际未发送的userid。未被限流的接收者仍会被成功发送。限流规则包括:1、给同一用户发相同内容消息一天仅允许一次;2、如果是ISV接入方式,给同一用户发消息一天不得超过100次;如果是企业接入方式,此上限为500。
2钉钉向群发送信息2.1登录钉钉电脑版,获得钉钉机器人的webhook
2.1.1 选择一个群,点击右上角的设置,选择“智能群助手”
2.1.2添加机器人
2.1.2 设置机器人名称和关键字