- 首先登陆钉钉开发者后台 https://ding-doc.dingtalk.com/
-
- 选择H5微应用,创建应用
-
- 创建好之后,查看所建好的应用信息(其中AgentId,AppKey,AppSecret很重要,调用时需要用到)
-
- 设定白名单访问地址,当前网络的公网IP
-
- 效果如下
-
- 源码---->首先下载官方的开发Dome
- 代码如下
-
static string DingAppkey = "ding0ctjh9dm6f4balqm";//钉钉 应用的唯一标识key static string DingAppsecret = "X02oBxovq87mrj1Yzvu4kkOs6Jb8eAOhaQ40ZnLmy_nxV1zytLrrymnoBu4ILbZD";//钉钉 应用的密钥 public static string dingAccessToken = "1236822342"; //钉钉接口调用凭证 static void Main(string[] args) { //if (args == null || args.Length < 2) //{ // Console.WriteLine("请输入机器人票据和通知内容"); // return; //} TimeSpan interval = DateTime.Now.Subtract(Convert.ToDateTime("2021-07-27").AddMinutes(50)); interval = Convert.ToDateTime("2021-07-27").AddMinutes(50).Subtract(DateTime.Now); double Minutes = interval.TotalMinutes; if (Minutes <= 10) { } if (Minutes <= 0) { } var token = GetDingAccessToken(); var userid = GetUser(token, "18899792310"); var msg = "test"; var result = Notify(token, userid, msg); Console.WriteLine(result); } #region 钉钉接口 /// <summary> /// 发送消息 /// </summary> /// <param name="token"></param> /// <param name="userid"></param> /// <param name="msg"></param> /// <returns></returns> public static string Notify(string token, string userid, string msg) { string MessageUrl = "https://oapi.dingtalk.com/message/send?access_token=" + token; var json_req = new { touser = userid, //接受推送userid,不同用户用|分割 toparty = "", //接受推送部门id agentid = "1236822342", msgtype = "text", //推送类型 text = new { content = "测试数据\n" + DateTime.Now } }; string jsonRequest = JsonConvert.SerializeObject(json_req);//将对象转换为json return Post(MessageUrl, jsonRequest); } /// <summary> /// 手机号获取userid /// </summary> /// <param name="access_token"></param> /// <param name="Mobile"></param> /// <returns></returns> public static string GetUser(string access_token, string Mobile) { IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getbymobile"); OapiV2UserGetbymobileRequest req = new OapiV2UserGetbymobileRequest(); req.Mobile = Mobile; OapiV2UserGetbymobileResponse rsp = client.Execute(req, access_token); return rsp.Result.Userid; } /// <summary> /// 获取access_token /// </summary> /// <returns></returns> public static string GetDingAccessToken() { string access_token = string.Empty; try { string accessToken = string.Empty; DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken"); OapiGettokenRequest request = new OapiGettokenRequest(); request.Appkey = DingAppkey;//钉钉 应用的唯一标识key request.Appsecret = DingAppsecret;//钉钉 应用的密钥 request.SetHttpMethod("GET"); OapiGettokenResponse response = client.Execute(request); access_token = response.AccessToken; } catch (Exception ex) { } return access_token; } #endregion #region Post /// <summary> /// 以Post方式提交命令 /// </summary> /// <param name="apiurl">请求的URL</param> /// <param name="jsonString">请求的json参数</param> /// <param name="headers">请求头的key-value字典</param> private static String Post(string apiurl, string jsonString, Dictionary<String, String> headers = null) { WebRequest request = WebRequest.Create(@apiurl); request.Method = "POST"; request.ContentType = "application/json"; if (headers != null) { foreach (var keyValue in headers) { if (keyValue.Key == "Content-Type") { request.ContentType = keyValue.Value; continue; } request.Headers.Add(keyValue.Key, keyValue.Value); } } if (String.IsNullOrEmpty(jsonString)) { request.ContentLength = 0; } else { byte[] bs = Encoding.UTF8.GetBytes(jsonString); request.ContentLength = bs.Length; Stream newStream = request.GetRequestStream(); newStream.Write(bs, 0, bs.Length); newStream.Close(); } WebResponse response = request.GetResponse(); Stream stream = response.GetResponseStream(); Encoding encode = Encoding.UTF8; StreamReader reader = new StreamReader(stream, encode); string resultJson = reader.ReadToEnd(); return resultJson; } #endregion
-
源码下载链接:https://download.csdn.net/download/qq_37192571/20620584