using System; using System.Xml.Serialization; using System.Collections.Generic; using Top.Api.Util; using Top.Api; using Top.Api.DingTalk; namespace DingTalk.Api.Request { /// /// TOP API: dingtalk.oapi.message.send_to_conversation /// public class OapiMessageSendToConversationRequest : BaseDingTalkRequest { /// /// ActionCard消息 /// public string ActionCard { get; set; } public ActionCardDomain ActionCard_ { set { this.ActionCard = TopUtils.ObjectToJson(value); } } /// /// 群消息或者个人聊天会话Id,(通过JSAPI之pickConversation接口唤起联系人界面选择之后即可拿到会话ID,之后您可以使用获取到的cid调用此接口) /// public string Cid { get; set; } /// /// file消息 /// public string File { get; set; } public FileDomain File_ { set { this.File = TopUtils.ObjectToJson(value); } } /// /// image消息 /// public string Image { get; set; } public ImageDomain Image_ { set { this.Image = TopUtils.ObjectToJson(value); } } /// /// link消息 /// public string Link { get; set; } public LinkDomain Link_ { set { this.Link = TopUtils.ObjectToJson(value); } } /// /// markdown消息 /// public string Markdown { get; set; } public MarkdownDomain Markdown_ { set { this.Markdown = TopUtils.ObjectToJson(value); } } /// /// 消息内容 /// public string Msg { get; set; } public MsgDomain Msg_ { set { this.Msg = TopUtils.ObjectToJson(value); } } /// /// 消息类型 /// public string Msgtype { get; set; } /// /// OA消息 /// public string Oa { get; set; } public OaDomain Oa_ { set { this.Oa = TopUtils.ObjectToJson(value); } } /// /// 消息发送者员工ID /// public string Sender { get; set; } /// /// text消息 /// public string Text { get; set; } public TextDomain Text_ { set { this.Text = TopUtils.ObjectToJson(value); } } /// /// voice消息 /// public string Voice { get; set; } public VoiceDomain Voice_ { set { this.Voice = TopUtils.ObjectToJson(value); } } #region IDingTalkRequest Members public override string GetApiName() { return "dingtalk.oapi.message.send_to_conversation"; } public override string GetApiCallType() { return DingTalkConstants.CALL_TYPE_OAPI; } public override IDictionary GetParameters() { TopDictionary parameters = new TopDictionary(); parameters.Add("action_card", this.ActionCard); parameters.Add("cid", this.Cid); parameters.Add("file", this.File); parameters.Add("image", this.Image); parameters.Add("link", this.Link); parameters.Add("markdown", this.Markdown); parameters.Add("msg", this.Msg); parameters.Add("msgtype", this.Msgtype); parameters.Add("oa", this.Oa); parameters.Add("sender", this.Sender); parameters.Add("text", this.Text); parameters.Add("voice", this.Voice); if (this.otherParams != null) { parameters.AddAll(this.otherParams); } return parameters; } public override void Validate() { } /// /// MarkdownDomain Data Structure. /// [Serializable] public class MarkdownDomain : TopObject { /// /// markdown格式的消息 /// [XmlElement("text")] public string Text { get; set; } /// /// 首屏会话透出的展示内容 /// [XmlElement("title")] public string Title { get; set; } } /// /// FormDomain Data Structure. /// [Serializable] public class FormDomain : TopObject { /// /// 消息体的关键字对应的值 /// [XmlElement("key")] public string Key { get; set; } /// /// 消息体的关键字 /// [XmlElement("value")] public string Value { get; set; } } /// /// RichDomain Data Structure. /// [Serializable] public class RichDomain : TopObject { /// /// 单行富文本信息的数目 /// [XmlElement("num")] public string Num { get; set; } /// /// 单行富文本信息的单位 /// [XmlElement("unit")] public string Unit { get; set; } } /// /// BodyDomain Data Structure. /// [Serializable] public class BodyDomain : TopObject { /// /// 自定义的作者名字 /// [XmlElement("author")] public string Author { get; set; } /// /// 消息体的内容,最多显示3行 /// [XmlElement("content")] public string Content { get; set; } /// /// 自定义的附件数目。此数字仅供显示,钉钉不作验证 /// [XmlElement("file_count")] public string FileCount { get; set; } /// /// 消息体的表单,最多显示6个,超过会被隐藏 /// [XmlArray("form")] [XmlArrayItem("form")] public List Form { get; set; } /// /// 消息体中的图片,支持图片资源@mediaId /// [XmlElement("image")] public string Image { get; set; } /// /// 单行富文本信息 /// [XmlElement("rich")] public RichDomain Rich { get; set; } /// /// 消息体的标题,建议50个字符以内 /// [XmlElement("title")] public string Title { get; set; } } /// /// HeadDomain Data Structure. /// [Serializable] public class HeadDomain : TopObject { /// /// 消息头部的背景颜色。长度限制为8个英文字符,其中前2为表示透明度,后6位表示颜色值。不要添加0x /// [XmlElement("bgcolor")] public string Bgcolor { get; set; } /// /// 消息的头部标题 (向普通会话发送时有效,向企业会话发送时会被替换为微应用的名字),长度限制为最多10个字符 /// [XmlElement("text")] public string Text { get; set; } } /// /// OaDomain Data Structure. /// [Serializable] public class OaDomain : TopObject { /// /// 消息体 /// [XmlElement("body")] public BodyDomain Body { get; set; } /// /// 消息头部内容 /// [XmlElement("head")] public HeadDomain Head { get; set; } /// /// 客户端点击消息时跳转到的H5地址 /// [XmlElement("message_url")] public string MessageUrl { get; set; } /// /// PC端点击消息时跳转到的地址 /// [XmlElement("pc_message_url")] public string PcMessageUrl { get; set; } } /// /// VoiceDomain Data Structure. /// [Serializable] public class VoiceDomain : TopObject { /// /// 语音时长 /// [XmlElement("duration")] public Nullable Duration { get; set; } /// /// 语音媒体文件id,可以调用上传媒体文件接口获取。2MB,播放长度不超过60s,AMR格式 /// [XmlElement("media_id")] public string MediaId { get; set; } } /// /// FileDomain Data Structure. /// [Serializable] public class FileDomain : TopObject { /// /// 媒体文件id,可以调用上传媒体文件接口获取。10MB /// [XmlElement("media_id")] public string MediaId { get; set; } } /// /// LinkDomain Data Structure. /// [Serializable] public class LinkDomain : TopObject { /// /// 消息点击链接地址 /// [XmlElement("messageUrl")] public string MessageUrl { get; set; } /// /// 图片媒体文件id,可以调用上传媒体文件接口获取 /// [XmlElement("picUrl")] public string PicUrl { get; set; } /// /// 消息描述 /// [XmlElement("text")] public string Text { get; set; } /// /// 消息标题 /// [XmlElement("title")] public string Title { get; set; } } /// /// ImageDomain Data Structure. /// [Serializable] public class ImageDomain : TopObject { /// /// 图片媒体文件id,可以调用上传媒体文件接口获取。建议宽600像素 x 400像素,宽高比3:2 /// [XmlElement("media_id")] public string MediaId { get; set; } } /// /// TextDomain Data Structure. /// [Serializable] public class TextDomain : TopObject { /// /// 消息内容 /// [XmlElement("content")] public string Content { get; set; } } /// /// BtnJsonDomain Data Structure. /// [Serializable] public class BtnJsonDomain : TopObject { /// /// 使用独立跳转ActionCard样式时的按钮的链接url /// [XmlElement("action_url")] public string ActionUrl { get; set; } /// /// 使用独立跳转ActionCard样式时的按钮的标题 /// [XmlElement("title")] public string Title { get; set; } } /// /// ActionCardDomain Data Structure. /// [Serializable] public class ActionCardDomain : TopObject { /// /// 使用独立跳转ActionCard样式时的按钮列表;必须与btn_orientation同时设置 /// [XmlArray("btn_json_list")] [XmlArrayItem("btn_json")] public List BtnJsonList { get; set; } /// /// 使用独立跳转ActionCard样式时的按钮排列方式,竖直排列(0),横向排列(1);必须与btn_json_list同时设置 /// [XmlElement("btn_orientation")] public string BtnOrientation { get; set; } /// /// 消息内容,支持markdown,语法参考标准markdown语法。图片举例:![alt text](mediaId) /// [XmlElement("markdown")] public string Markdown { get; set; } /// /// 使用整体跳转ActionCard样式时的标题,必须与single_url同时设置 /// [XmlElement("single_title")] public string SingleTitle { get; set; } /// /// 使用整体跳转ActionCard样式时的链接url,必须与single_title同时设置 /// [XmlElement("single_url")] public string SingleUrl { get; set; } /// /// 透出到会话列表和通知的文案 /// [XmlElement("title")] public string Title { get; set; } } /// /// MsgDomain Data Structure. /// [Serializable] public class MsgDomain : TopObject { /// /// 消息内容,支持markdown,语法参考标准markdown语法。图片举例:![alt text](mediaId) /// [XmlElement("action_card")] public ActionCardDomain ActionCard { get; set; } /// /// 文件消息 /// [XmlElement("file")] public FileDomain File { get; set; } /// /// 图片消息 /// [XmlElement("image")] public ImageDomain Image { get; set; } /// /// 链接消息 /// [XmlElement("link")] public LinkDomain Link { get; set; } /// /// markdown消息 /// [XmlElement("markdown")] public MarkdownDomain Markdown { get; set; } /// /// 消息类型 /// [XmlElement("msgtype")] public string Msgtype { get; set; } /// /// oa消息 /// [XmlElement("oa")] public OaDomain Oa { get; set; } /// /// 文本消息 /// [XmlElement("text")] public TextDomain Text { get; set; } /// /// 语音消息 /// [XmlElement("voice")] public VoiceDomain Voice { get; set; } } #endregion } }