feat(work): 新增消息推送模板卡片相关接口

This commit is contained in:
Fu Diwei
2021-08-20 00:29:09 +08:00
parent 5fc0259775
commit 1f484b70dd
9 changed files with 717 additions and 23 deletions

View File

@@ -0,0 +1,76 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Events
{
/// <summary>
/// <para>表示 EVENT.template_card_event 事件的数据。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90240 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90240 </para>
/// </summary>
public class TemplateCardPushEvent : WechatWorkEvent, WechatWorkEvent.Types.IXmlSerializable
{
public new static class Types
{
public class SelectItem
{
/// <summary>
/// 获取或设置问题的 Key 值。
/// </summary>
[System.Xml.Serialization.XmlElement("QuestionKey")]
public string QuestionKey { get; set; } = default!;
/// <summary>
/// 获取或设置选项 ID 列表。
/// </summary>
[System.Xml.Serialization.XmlElement("OpitonIds", Type = typeof(string))]
public string[] OptionIdList { get; set; } = default!;
}
public class SelectList
{
/// <summary>
/// 获取或设置下拉框列表。
/// </summary>
[System.Xml.Serialization.XmlElement("SelectedItem", Type = typeof(SelectItem))]
public SelectItem[]? Items { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置应用 ID。
/// </summary>
[System.Xml.Serialization.XmlElement("AgentID")]
public int AgentId { get; set; }
/// <summary>
/// 获取或设置任务 ID。
/// </summary>
[System.Xml.Serialization.XmlElement("TaskId")]
public string TaskId { get; set; } = default!;
/// <summary>
/// 获取或设置模板卡片类型。
/// </summary>
[System.Xml.Serialization.XmlElement("CardType")]
public string CardType { get; set; } = default!;
/// <summary>
/// 获取或设置用于更新卡片接口的 Code。
/// </summary>
[System.Xml.Serialization.XmlElement("ResponseCode")]
public string ResponseCode { get; set; } = default!;
/// <summary>
/// 获取或设置用户点击的按钮 Key 值。
/// </summary>
[System.Xml.Serialization.XmlElement("EventKey", IsNullable = true)]
public string? ButtonKey { get; set; }
/// <summary>
/// 获取或设置下拉框列表。
/// </summary>
[System.Xml.Serialization.XmlElement("SelectList")]
public Types.SelectList? SelectList { get; set; } = default!;
}
}

View File

@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Events
{
/// <summary>
/// <para>表示被动回复更新点击用户的按钮点击文案消息的数据。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90241#%E6%A8%A1%E6%9D%BF%E5%8D%A1%E7%89%87%E6%9B%B4%E6%96%B0%E6%B6%88%E6%81%AF </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90377#%E6%A8%A1%E6%9D%BF%E5%8D%A1%E7%89%87%E6%9B%B4%E6%96%B0%E6%B6%88%E6%81%AF </para>
/// </summary>
public class UpdateButtonReply : WechatWorkEvent, WechatWorkEvent.Types.IXmlSerializable
{
public new static class Types
{
public class Button
{
/// <summary>
/// 获取或设置替换文案。
/// </summary>
[System.Xml.Serialization.XmlElement("ReplaceName")]
public string ReplacementText { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置按钮信息。
/// </summary>
[System.Xml.Serialization.XmlElement("Button")]
public Types.Button Button { get; set; } = new Types.Button();
public UpdateButtonReply()
{
Event = null;
MessageType = "update_button";
}
}
}