1.给群发送消息
①首先需要放置一个自定义机器人(在个人信息下方的机器人管理里面),并选择你想要接收消息的群,之后取得这个机器人的webhook地址。
②写一个测试类,测试能不能用该方法给钉钉发送消息。方法的具体实现钉钉文档里有提供,我们只需要稍作修改
public class Robot2 {//机器人在团队里发送消息 方法二
public static void main(String[] args) {
// TODO Auto-generated method stub
//机器人地址
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=1438ad92a60e6b713699c16b1028eb5ba588cee4443bc434ef0dde947411f7ca");
OapiRobotSendRequest request = new OapiRobotSendRequest();
request.setMsgtype("text");
OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
text.setContent("我就是我, 是不一样的烟火");
request.setText(text);
OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();//设置一个At对象,用于@用户
at.setAtMobiles(Arrays.asList(//需要@的人
"157****5214",
"181****6312"
));
request.setAt(at);
OapiRobotSendResponse response;
try {
response=client.execute(request);
} catch (ApiException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.给个人工作通知发送消息
给个人通知发送消息原理跟上述的一样。也是需要先在个人工作通知里面设置一个机器人,获取到webhook地址,再根据此地址请求。代码只需改动url请求地址就行。
3.在自研系统上写入该方法。C#
这一步才是真正开发的难点。如果你开发的系统是用Java/Php/Nodejs/Python语言,那么会方便一点,钉钉里面有提供相应的SDK供后端更方便的开发,文档提供的示例代码你可以直接参考着用。但由于我们用的是C#语言,所以很多类与方法要自己找。同时传入传出的数据格式、请求路径的要求,要满足钉钉的规定,否则将不能成功请求到。
钉钉对于需要参数的要求在文档里面有写,具体开发时要注意这些细节
①首先在自研系统前端页面里面写一个事件和JS函数,利用ajax请求方法,这里type类型为post,这就是钉钉的硬性规定。
function multiSearch() {
$.ajax({
url: "DDMessage",
type: "POST",
success: function (result) {
}
});
}
②在控制器里面写你要实现的方法
这个是钉钉文档规定的要求:
方法代码
public void DDMessage()
{
string url = "https://oapi.dingtalk.com/robot/send?access_token=1438ad92a60e6b713699c16b1028eb5ba588cee4443bc434ef0dde947411f7ca";
//输出文本
Dictionary<string, object> dic = new Dictionary<string, object>();//这里用的是数据字典的方法,传入一个字符串和对象
Dictionary<string, object> dic1 = new Dictionary<string, object>();
dic1.Add("content", "我就是我, 是不一样的烟火");
dic.Add("msgtype", "text");
dic.Add("text", dic1 );
string json = JsonConvert.SerializeObject(dic);//{"key1":"val1","key2":"val2"}
Config.HttpPost(url, json);
}
这里面我写了创建了两个数据字典Dictionary对象,dic和dic1
dic1用于放置content
dic1.Add("content", "我就是我, 是不一样的烟火");
dic用于设置
msgtype
text
并且钉钉要求请求的时候,传入的参数(一个地址一个文本)中,文本内容为JSON格式,所以我们需要将文本内容转换为JSON格式。
dic.Add("msgtype", "text");
dic.Add("text", dic1);
string json = JsonConvert.SerializeObject(dic);//{"key1":"val1","key2":"val2"}
最后就是将地址和整个文本传过去
Config.HttpPost(url, json);
开发时要注意文档的一些细节,比如文本格式,字符串编码。