发送钉钉第三方工作消息通知

钉钉官方定义:https://open.dingtalk.com/document/orgapp/message-notification-overview

开发前需在钉钉开发者后台配置【第三方企业应用】

如何配置请参考:【夏风中的Young Uncle】 https://www.cnblogs.com/woshuaile/p/17514015.html 


配置完成后会在钉钉工作台,会展现刚刚配置完成的第三方企业应用

 

同时也会得到AgentID、AppKey、AppSecret;

放一张实际发送的效果图

图片中1:包含通知标题、通知内容、通知人、通知时间;2:通知状态(状态也可调用钉钉接口进行更改);3:查看详情,可以在app或PC端打开链接,进入详情页面

主:如果和你想要的效果一致,请继续浏览。否则请搜索查看其他博文(省的浪费时间)。

1、首先把配置放到 webconfig 中

 2、实现方法前,需要下载钉钉SDK,获取sdk方法在

直接打开钉钉地址进行sdk下载:https://open.dingtalk.com/document/resourcedownload/download-server-sdk?spm=ding_open_doc.document.0.0.cefe40e9Q56N9D#title-dyi-gqb-z18

下载完成后,会得到 TopSdk.dll 直接放到项目bin文件下。

3、创建ToDoSendOA.cs 类实现第三方应用消息发送方法

  //引用

  using DingTalk.Api;
  using DingTalk.Api.Request;
  using DingTalk.Api.Response;

public class  ToDoSendOA
{
//获取配置信息

     private string DingTalkAgentID = ConfigurationManager.AppSettings["DingTalkAgentID"].ToString();
     private string DingTalkAppKey = ConfigurationManager.AppSettings["DingTalkAppKey"].ToString();
     private string DingTalkAppSecret = ConfigurationManager.AppSettings["DingTalkAppSecret"].ToString();

    /// <summary>
    /// 推送单条任务
    /// </summary>
    /// <param name="Msg"></param>
    /// <returns></returns>
    private bool SendDingTalkMessage(ToDoMessageEntityOA Msg)
    {
        #region 参数封装
        bool result = false;
//获取钉钉Userid,这里是根据登录名,获取数据库保存的钉钉Userid,(可根据实际情况进行修改),具体获取钉钉USERid,下面会进行讲解
string dingTalkuserid = GetDingTalkUserID(Msg.Receiveuserloginname); if (string.IsNullOrEmpty(dingTalkuserid)) { _logInfo.Info("钉钉推送获取推送用户为空:" + "Receiveuserloginname:" + Msg.Receiveuserloginname); return result; } string strTitle = Msg.Title;//传入参数 通知标题
//这的MessageUrl,是为了上面图片3,点击详情进入调转到详情页
string messageUrl = HttpUtility.UrlEncode(GetdingTalkUrl(Msg, WEB_H5_URL, DingTalkLoginUrl, "messgae")); string firstname = Msg.Firstname;//传入参数通知人 List<FormDomain> forms = new List<FormDomain> { new FormDomain{ Key="发起人:" ,Value= firstname }, new FormDomain{ Key="通知时间:" ,Value=Msg.Senddate.ToString("yyyy-MM-dd HH:mm:ss")},//传入参数:发送时间 }; var oaModel = new OaMsgModel() { Agentid = long.Parse(DingTalkAgentID), MessageUrl = "dingtalk://dingtalkclient/page/link?url=" + messageUrl + "&pc_slide=" + MsgPcSlide, PcMessageUrl = "dingtalk://dingtalkclient/page/link?url=" + messageUrl + "&pc_slide=" + MsgPcSlide, Head = new HeadDomain() { Text = strTitle }, Body = new BodyDomain() { Title = strTitle, Content = Msg.Title, Form = forms }, Touser = dingTalkuserid, MessageType = MessageType.Oa, Recordstatus = Msg.Recordstatus }; #endregion if (GetMessagedingtalk(Msg)<=0) { //钉钉通知 DingTalkResponse res = SendAsync(oaModel); if (res.Success) { InsertDingTalk(Msg.Entiid, Msg.Datakey, res.Data, Msg.Workflowtitle, Msg.Senduserid, Msg.Senduserloginname, Msg.Receiveuserid, Msg.Receiveuserloginname, Msg.Recordstatus, "Message", "", DateTime.Now, "", Msg.Msgguid.ToString()); result = true; } return result; } return true; }
}

 

posted @ 2023-11-28 15:47  吃辣椒的小毛驴  阅读(1029)  评论(0)    收藏  举报