• 首先登陆钉钉开发者后台 https://ding-doc.dingtalk/
  •  选择H5微应用,创建应用
  • 创建好之后,查看所建好的应用信息(其中AgentId,AppKey,AppSecret很重要,调用时需要用到)
  • 设定白名单访问地址,当前网络的公网IP 
  • 效果如下
  • 源码---->首先下载官方的开发Dome

    • https://developers.dingtalk/document/app/download-the-server-side-sdk/title-12y-g4g-zn2
  • 代码如下
    • 
              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/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/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/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/download/qq_37192571/20620584

更多推荐

调用钉钉接口消息推送