被动响应多图文消息官方文档:
news消息
参数 | 说明 |
---|---|
ToUserName | 员工UserID |
FromUserName | 企业号CorpID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:news |
ArticleCount | 图文条数,默认第一条为大图。图文数不能超过10,否则将会无响应 |
Title | 图文消息标题 |
Description | 图文消息描述 |
PicUrl | 图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200 |
Url | 点击图文消息跳转链接 |
我们在项目中新增一个News类
代码如下:
/// <summary> /// 图文消息 /// </summary> public class ResponseNews : ResponseBase { /// <summary> /// 图文条数,默认第一条为大图。图文数不能超过10,否则将会无响应 /// </summary> public int ArticleCount { get { return ArticleCollection.Count; } } public string Articles { get; set; } /// <summary> /// 图文内容,集合 /// </summary> public List<ArticleItem> ArticleCollection { get; set; } /// <summary> /// 构造函数,自动生成消息创建时间(整型),参考:APITools.GetCreateTime() /// </summary> /// <param name="toUser">员工UserID </param> /// <param name="fromUser">企业号CorpID </param> /// <param name="content">文本消息内容 </param> public ResponseNews(string toUser, string fromUser) : base(RequestMessageType.news) { this.ToUserName = toUser; this.FromUserName = fromUser; this.CreateTime = CorpTools.GetCreateTime(); } /// <summary> /// 获得XML文本 /// </summary> /// <returns></returns> public override string GenerateXML() { /* const string xmlformat = @" <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount>2</ArticleCount> <Articles> <item> <Title><![CDATA[title1]]></Title> <Description><![CDATA[description1]]></Description> <PicUrl><![CDATA[picurl]]></PicUrl> <Url><![CDATA[url]]></Url> </item> <item> <Title><![CDATA[title]]></Title> <Description><![CDATA[description]]></Description> <PicUrl><![CDATA[picurl]]></PicUrl> <Url><![CDATA[url]]></Url> </item> </Articles> </xml>"; */ //获得文章列表xml string xmlArticles = ""; foreach (ArticleItem item in ArticleCollection) { xmlArticles += item.GenerateXML(); } string XML = " <xml>" + String.Format("<ToUserName><![CDATA[{0}]]></ToUserName>", ToUserName) + String.Format("<FromUserName><![CDATA[{0}]]></FromUserName>", FromUserName) + String.Format("<CreateTime>{0}</CreateTime>", CreateTime) + String.Format("<MsgType><![CDATA[{0}]]></MsgType>", MsgType) + String.Format("<ArticleCount>{0}</ArticleCount>", ArticleCollection.Count) + String.Format("<Articles>{0}</Articles>", xmlArticles) + "</xml>"; return String.Format(xmlformat, ToUserName, FromUserName, CreateTime, MsgType, ""); } } /// <summary> /// 图文消息,单图文类 /// </summary> public class ArticleItem { /// <summary> /// 文章标题 /// </summary> public string Title { get; set; } /// <summary> /// 文章描述 /// </summary> public string Description { get; set; } /// <summary> /// 图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200 /// </summary> public string PicUrl { get; set; } /// <summary> /// 点击图文消息跳转链接 /// </summary> public string Url { get; set; } public string GenerateXML() { string xml = "<item>" + String.Format("<Title><![CDATA[{0}]]></Title>", Title) + String.Format("<Description><![CDATA[{0}]]></Description>", Description) + String.Format("<PicUrl><![CDATA[{0}]]></PicUrl>", PicUrl) + String.Format("<Url><![CDATA[{0}]]></Url>", Url) + "</item>"; return xml; } public string GenerateJSON() { throw new NotImplementedException(); } }
查询返回