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
|
{
|
/// <summary>
|
/// TOP API: dingtalk.oapi.smartbot.msg.push
|
/// </summary>
|
public class OapiSmartbotMsgPushRequest : BaseDingTalkRequest<DingTalk.Api.Response.OapiSmartbotMsgPushResponse>
|
{
|
/// <summary>
|
/// 接收者的会话chatid列表
|
/// </summary>
|
public string ChatIdList { get; set; }
|
|
/// <summary>
|
/// 消息体,具体见文档
|
/// </summary>
|
public string Msg { get; set; }
|
|
public MsgDomain Msg_ { set { this.Msg = TopUtils.ObjectToJson(value); } }
|
|
/// <summary>
|
/// 是否发送给企业全部用户,”true“则忽略用户列表和会话列表
|
/// </summary>
|
public Nullable<bool> ToAllUser { get; set; }
|
|
/// <summary>
|
/// 接收者的用户userid列表
|
/// </summary>
|
public string UserIdList { get; set; }
|
|
#region IDingTalkRequest Members
|
|
public override string GetApiName()
|
{
|
return "dingtalk.oapi.smartbot.msg.push";
|
}
|
|
public override string GetApiCallType()
|
{
|
return DingTalkConstants.CALL_TYPE_OAPI;
|
}
|
|
public override IDictionary<string, string> GetParameters()
|
{
|
TopDictionary parameters = new TopDictionary();
|
parameters.Add("chat_id_list", this.ChatIdList);
|
parameters.Add("msg", this.Msg);
|
parameters.Add("to_all_user", this.ToAllUser);
|
parameters.Add("user_id_list", this.UserIdList);
|
if (this.otherParams != null)
|
{
|
parameters.AddAll(this.otherParams);
|
}
|
return parameters;
|
}
|
|
public override void Validate()
|
{
|
RequestValidator.ValidateMaxListSize("chat_id_list", this.ChatIdList, 500);
|
RequestValidator.ValidateRequired("msg", this.Msg);
|
RequestValidator.ValidateMaxListSize("user_id_list", this.UserIdList, 5000);
|
}
|
|
/// <summary>
|
/// TextDomain Data Structure.
|
/// </summary>
|
[Serializable]
|
|
public class TextDomain : TopObject
|
{
|
/// <summary>
|
/// 文本消息
|
/// </summary>
|
[XmlElement("content")]
|
public string Content { get; set; }
|
}
|
|
/// <summary>
|
/// MarkdownDomain Data Structure.
|
/// </summary>
|
[Serializable]
|
|
public class MarkdownDomain : TopObject
|
{
|
/// <summary>
|
/// markdown格式的消息,建议500字符以内
|
/// </summary>
|
[XmlElement("text")]
|
public string Text { get; set; }
|
|
/// <summary>
|
/// 首屏会话透出的展示内容
|
/// </summary>
|
[XmlElement("title")]
|
public string Title { get; set; }
|
}
|
|
/// <summary>
|
/// BtnJsonDomain Data Structure.
|
/// </summary>
|
[Serializable]
|
|
public class BtnJsonDomain : TopObject
|
{
|
/// <summary>
|
/// 消息点击链接地址,当发送消息为小程序时支持小程序跳转链接,最长500个字符
|
/// </summary>
|
[XmlElement("action_url")]
|
public string ActionUrl { get; set; }
|
|
/// <summary>
|
/// 使用独立跳转ActionCard样式时的按钮的标题,最长20个字符
|
/// </summary>
|
[XmlElement("title")]
|
public string Title { get; set; }
|
}
|
|
/// <summary>
|
/// ActionCardDomain Data Structure.
|
/// </summary>
|
[Serializable]
|
|
public class ActionCardDomain : TopObject
|
{
|
/// <summary>
|
/// 使用独立跳转ActionCard样式时的按钮列表;必须与btn_orientation同时设置
|
/// </summary>
|
[XmlArray("btn_json_list")]
|
[XmlArrayItem("btn_json")]
|
public List<BtnJsonDomain> BtnJsonList { get; set; }
|
|
/// <summary>
|
/// 使用独立跳转ActionCard样式时的按钮排列方式,竖直排列(0),横向排列(1);必须与btn_json_list同时设置
|
/// </summary>
|
[XmlElement("btn_orientation")]
|
public string BtnOrientation { get; set; }
|
|
/// <summary>
|
/// 消息内容,支持markdown,语法参考标准markdown语法。建议1000个字符以内
|
/// </summary>
|
[XmlElement("markdown")]
|
public string Markdown { get; set; }
|
|
/// <summary>
|
/// 使用整体跳转ActionCard样式时的标题,必须与single_url同时设置,最长20个字符
|
/// </summary>
|
[XmlElement("single_title")]
|
public string SingleTitle { get; set; }
|
|
/// <summary>
|
/// 消息点击链接地址,当发送消息为小程序时支持小程序跳转链接,最长500个字符
|
/// </summary>
|
[XmlElement("single_url")]
|
public string SingleUrl { get; set; }
|
|
/// <summary>
|
/// 透出到会话列表和通知的文案,最长64个字符
|
/// </summary>
|
[XmlElement("title")]
|
public string Title { get; set; }
|
}
|
|
/// <summary>
|
/// MsgDomain Data Structure.
|
/// </summary>
|
[Serializable]
|
|
public class MsgDomain : TopObject
|
{
|
/// <summary>
|
/// 卡片消息
|
/// </summary>
|
[XmlElement("action_card")]
|
public ActionCardDomain ActionCard { get; set; }
|
|
/// <summary>
|
/// markdown消息
|
/// </summary>
|
[XmlElement("markdown")]
|
public MarkdownDomain Markdown { get; set; }
|
|
/// <summary>
|
/// 消息类型
|
/// </summary>
|
[XmlElement("msgtype")]
|
public string Msgtype { get; set; }
|
|
/// <summary>
|
/// 文本消息
|
/// </summary>
|
[XmlElement("text")]
|
public TextDomain Text { get; set; }
|
}
|
|
#endregion
|
}
|
}
|