Ejemplo n.º 1
0
        /// <summary>
        /// 发送普通消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="sender">消息发送者 userId</param>
        /// <param name="cId">群会话或者个人会话的id,通过JSAPI的dd.chooseChatForNormalMsg接口唤起联系人界面选择之后即可拿到会话cid</param>
        /// <param name="msg">消息内容,消息类型和样例可参考“消息类型与数据格式”文档。最长不超过2048个字节</param>
        /// <returns></returns>
        public OapiMessageSendToConversationResponse SendToConversation(string accessToken, string sender, string cId, OapiMessageSendToConversationRequest.MsgDomain msg)
        {
            IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/message/send_to_conversation");

            OapiMessageSendToConversationRequest req = new OapiMessageSendToConversationRequest();

            req.Sender = sender;
            req.Cid    = cId;
            req.Msg_   = msg;

            OapiMessageSendToConversationResponse response = client.Execute(req, accessToken);

            return(response);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 发送普通消息--弃用
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="sender">消息发送者 userId</param>
        /// <param name="cId">群会话或者个人会话的id,通过JSAPI的dd.chooseChatForNormalMsg接口唤起联系人界面选择之后即可拿到会话cid</param>
        /// <param name="msg">消息内容,消息类型和样例可参考“消息类型与数据格式”文档。最长不超过2048个字节</param>
        /// <returns></returns>
        public static OapiMessageSendToConversationResponse SendToConversation(string accessToken, string sender, string cId, OapiMessageSendToConversationRequest.MsgDomain msg)
        {
            try
            {
                IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/message/send_to_conversation");

                OapiMessageSendToConversationRequest req = new OapiMessageSendToConversationRequest();
                req.Sender = sender;
                req.Cid    = cId;
                req.Msg_   = msg;

                OapiMessageSendToConversationResponse response = client.Execute(req, accessToken);
                log.Info("SendToConversation: " + response.Body);
                return(response);
            }
            catch (Exception ex)
            {
                log.Info(ex);
                return(null);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 发送普通消息
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public static ResponseParameters SendAnOrdinaryMessage(RequestParameters parameters)
        {
            try
            {
                log.Info("发送普通消息");
                DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/message/send_to_conversation");

                OapiMessageSendToConversationRequest req = new OapiMessageSendToConversationRequest();
                log.Info("Sender:" + parameters.Sender + ";Cid:" + parameters.Cid);
                req.Sender = parameters.Sender;
                req.Cid    = parameters.Cid;
                OapiMessageSendToConversationRequest.MsgDomain msg = new OapiMessageSendToConversationRequest.MsgDomain();
                switch (parameters.SendMsgType)
                {
                case SendMsgType.text:
                    // 文本消息
                    OapiMessageSendToConversationRequest.TextDomain text = new OapiMessageSendToConversationRequest.TextDomain();
                    text.Content = parameters.Message;
                    msg.Text     = text;
                    msg.Msgtype  = "text";
                    req.Msg_     = msg;
                    log.Info("发送文本消息" + parameters.Message);
                    break;

                case SendMsgType.image:
                    // 图片
                    OapiMessageSendToConversationRequest.ImageDomain image = new OapiMessageSendToConversationRequest.ImageDomain();
                    image.MediaId = parameters.Message;
                    msg.Image     = image;
                    msg.Msgtype   = "image";
                    req.Msg_      = msg;
                    break;

                case SendMsgType.file:
                    // 文件
                    OapiMessageSendToConversationRequest.FileDomain file = new OapiMessageSendToConversationRequest.FileDomain();
                    file.MediaId = parameters.Message;
                    msg.File     = file;
                    msg.Msgtype  = "file";
                    req.Msg_     = msg;
                    break;

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

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

                case SendMsgType.link:
                    // link消息
                    OapiMessageSendToConversationRequest.LinkDomain link = new OapiMessageSendToConversationRequest.LinkDomain();
                    link.MessageUrl = parameters.MessageUrl;
                    link.PicUrl     = parameters.PicUrl;
                    link.Text       = parameters.Text;
                    link.Title      = parameters.Title;
                    msg.Link        = link;
                    msg.Msgtype     = "link";
                    req.Msg_        = msg;
                    break;

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