Exemple #1
0
        public JObject SendText(string userid, string content)
        {
            var msgContent = new OapiMessageCorpconversationAsyncsendV2Request.TextDomain
            {
                Content = content
            };
            var msg = new OapiMessageCorpconversationAsyncsendV2Request.MsgDomain
            {
                Msgtype = "text",
                Text    = msgContent
            };

            return(SendWorkMsg(userid, msg));
        }
Exemple #2
0
        ////

        /**
         * 同一个微应用相同消息内容同一个用户一天只能接收一次,重复发送会发送成功但用户接收不到。
         * 该接口是异步发送消息,接口返回成功并不表示用户收到消息,需要通过“查询工作通知消息的发送结果”接口查询是否给用户发送成功。
         */
        /// <summary>
        /// 发送工作消息
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public static ResponseParameters SendWorkNotificationMessage(RequestParameters parameters)
        {
            try
            {
                log.Info("发送工作消息");
                DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");

                OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request();
                log.Info("UseridList:" + parameters.Userid_list + ";AgentId:" + parameters.Agent_id + ";ToAllUser:"******"text";
                    msg.Text     = text;
                    request.Msg_ = msg;
                    log.Info("发送Text消息:" + parameters.Message);
                    break;

                case SendMsgType.image:
                    OapiMessageCorpconversationAsyncsendV2Request.ImageDomain image = new OapiMessageCorpconversationAsyncsendV2Request.ImageDomain();
                    image.MediaId = parameters.MediaId;
                    msg.Msgtype   = "image";
                    msg.Image     = image;
                    request.Msg_  = msg;
                    log.Info("发送image:" + parameters.MediaId);
                    break;

                case SendMsgType.file:
                    OapiMessageCorpconversationAsyncsendV2Request.FileDomain file = new OapiMessageCorpconversationAsyncsendV2Request.FileDomain();
                    file.MediaId = parameters.MediaId;
                    msg.Msgtype  = "file";
                    msg.File     = file;
                    request.Msg_ = msg;
                    log.Info("发送file:" + parameters.MediaId);
                    break;

                case SendMsgType.link:
                    OapiMessageCorpconversationAsyncsendV2Request.LinkDomain link = new OapiMessageCorpconversationAsyncsendV2Request.LinkDomain();
                    link.Title      = parameters.Title;
                    link.Text       = parameters.Text;
                    link.MessageUrl = parameters.MessageUrl;
                    link.PicUrl     = parameters.PicUrl;
                    msg.Link        = link;
                    msg.Msgtype     = "link";
                    request.Msg_    = msg;
                    log.Info("发送link:Title" + parameters.Title);
                    break;

                case SendMsgType.markdown:
                    OapiMessageCorpconversationAsyncsendV2Request.MarkdownDomain markdown = new OapiMessageCorpconversationAsyncsendV2Request.MarkdownDomain();
                    markdown.Text  = parameters.Text;
                    markdown.Title = parameters.Title;
                    msg.Msgtype    = "markdown";
                    msg.Markdown   = markdown;
                    request.Msg_   = msg;
                    break;

                case SendMsgType.action_card:
                    OapiMessageCorpconversationAsyncsendV2Request.ActionCardDomain actionCard = new OapiMessageCorpconversationAsyncsendV2Request.ActionCardDomain();
                    actionCard.Title       = parameters.Title;
                    actionCard.Markdown    = parameters.Markdown;
                    actionCard.SingleTitle = parameters.SingleTitle;
                    actionCard.SingleUrl   = parameters.SingleUrl;
                    msg.ActionCard         = actionCard;
                    msg.Msgtype            = "action_card";
                    request.Msg_           = msg;
                    break;

                case SendMsgType.oa:
                    OapiMessageCorpconversationAsyncsendV2Request.OADomain   oA   = new OapiMessageCorpconversationAsyncsendV2Request.OADomain();
                    OapiMessageCorpconversationAsyncsendV2Request.HeadDomain head = new OapiMessageCorpconversationAsyncsendV2Request.HeadDomain();
                    OapiMessageCorpconversationAsyncsendV2Request.BodyDomain body = new OapiMessageCorpconversationAsyncsendV2Request.BodyDomain();
                    head.Text    = parameters.Text;
                    body.Content = parameters.Message;
                    oA.Head      = head;
                    oA.Body      = body;
                    msg.Oa       = oA;
                    msg.Msgtype  = "oa";
                    request.Msg_ = msg;
                    break;

                default:
                    break;
                }
                OapiMessageCorpconversationAsyncsendV2Response response = client.Execute(request, Get_Access_Token());
                log.Info("请求完成" + response.ToString());
                return(new ResponseParameters()
                {
                    ErroCode = response.Errcode,
                    ErroMsg = response.Errmsg,
                    TaskId = response.TaskId
                });
            }
            catch (Exception ex)
            {
                return(new ResponseParameters()
                {
                    ErroCode = -1,
                    ErroMsg = ex.Message
                });
            }
        }