1
zrg
2024-10-15 a1e3e548ea03ceb32d07bf9f73f4719dd14f7f2e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
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
    }
}