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.robot.send /// public class OapiRobotSendRequest : BaseDingTalkRequest { /// /// 此消息类型为固定actionCard /// public string ActionCard { get; set; } public ActioncardDomain ActionCard_ { set { this.ActionCard = TopUtils.ObjectToJson(value); } } /// /// 被@人的手机号 /// public string At { get; set; } public AtDomain At_ { set { this.At = TopUtils.ObjectToJson(value); } } /// /// 此消息类型为固定feedCard /// public string FeedCard { get; set; } public FeedcardDomain FeedCard_ { set { this.FeedCard = 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 Msgtype { get; set; } /// /// text类型 /// public string Text { get; set; } public TextDomain Text_ { set { this.Text = TopUtils.ObjectToJson(value); } } #region IDingTalkRequest Members public override string GetApiName() { return "dingtalk.oapi.robot.send"; } public override string GetApiCallType() { return DingTalkConstants.CALL_TYPE_OAPI; } public override IDictionary GetParameters() { TopDictionary parameters = new TopDictionary(); parameters.Add("actionCard", this.ActionCard); parameters.Add("at", this.At); parameters.Add("feedCard", this.FeedCard); parameters.Add("link", this.Link); parameters.Add("markdown", this.Markdown); parameters.Add("msgtype", this.Msgtype); parameters.Add("text", this.Text); if (this.otherParams != null) { parameters.AddAll(this.otherParams); } return parameters; } public override void Validate() { RequestValidator.ValidateRequired("msgtype", this.Msgtype); } /// /// TextDomain Data Structure. /// [Serializable] public class TextDomain : TopObject { /// /// text类型 /// [XmlElement("content")] public string Content { get; set; } } /// /// AtDomain Data Structure. /// [Serializable] public class AtDomain : TopObject { /// /// 被@人的手机号 /// [XmlArray("atMobiles")] [XmlArrayItem("string")] public List AtMobiles { get; set; } /// /// 被@人的工号 /// [XmlArray("atUserIds")] [XmlArrayItem("string")] public List AtUserIds { get; set; } /// /// @所有人时:true,否则为:false /// [XmlElement("isAtAll")] public Nullable IsAtAll { get; set; } } /// /// LinkDomain Data Structure. /// [Serializable] public class LinkDomain : TopObject { /// /// 点击消息跳转的URL /// [XmlElement("messageUrl")] public string MessageUrl { get; set; } /// /// 图片URL /// [XmlElement("picUrl")] public string PicUrl { get; set; } /// /// 消息内容。如果太长只会部分展示 /// [XmlElement("text")] public string Text { get; set; } /// /// 消息标题 /// [XmlElement("title")] public string Title { get; set; } } /// /// MarkdownDomain Data Structure. /// [Serializable] public class MarkdownDomain : TopObject { /// /// markdown格式的消息 /// [XmlElement("text")] public string Text { get; set; } /// /// 首屏会话透出的展示内容 /// [XmlElement("title")] public string Title { get; set; } } /// /// BtnsDomain Data Structure. /// [Serializable] public class BtnsDomain : TopObject { /// /// 按钮方案, /// [XmlElement("actionURL")] public string ActionURL { get; set; } /// /// 点击按钮触发的URL此消息类型为固定feedCard /// [XmlElement("title")] public string Title { get; set; } } /// /// ActioncardDomain Data Structure. /// [Serializable] public class ActioncardDomain : TopObject { /// /// 0-按钮竖直排列,1-按钮横向排列 /// [XmlElement("btnOrientation")] public string BtnOrientation { get; set; } /// /// 按钮的信息 /// [XmlArray("btns")] [XmlArrayItem("btns")] public List Btns { get; set; } /// /// 0-正常发消息者头像,1-隐藏发消息者头像 /// [XmlElement("hideAvatar")] public string HideAvatar { get; set; } /// /// 单个按钮的方案。(设置此项和singleURL后btns无效。) /// [XmlElement("singleTitle")] public string SingleTitle { get; set; } /// /// 点击singleTitle按钮触发的URL /// [XmlElement("singleURL")] public string SingleURL { get; set; } /// /// markdown格式的消息 /// [XmlElement("text")] public string Text { get; set; } /// /// 首屏会话透出的展示内容 /// [XmlElement("title")] public string Title { get; set; } } /// /// LinksDomain Data Structure. /// [Serializable] public class LinksDomain : TopObject { /// /// 点击单条信息到跳转链接 /// [XmlElement("messageURL")] public string MessageURL { get; set; } /// /// 单条信息文本 /// [XmlElement("picURL")] public string PicURL { get; set; } /// /// 单条信息后面图片的URL /// [XmlElement("title")] public string Title { get; set; } } /// /// FeedcardDomain Data Structure. /// [Serializable] public class FeedcardDomain : TopObject { /// /// links /// [XmlArray("links")] [XmlArrayItem("links")] public List Links { get; set; } } #endregion } }