mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-09-20 02:29:40 +08:00
feat(work): 新增获取接收的邮件相关接口
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Work.Events
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 EVENT.app_email_change 事件的数据。</para>
|
||||
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97506 </para>
|
||||
/// </summary>
|
||||
public class AppEmailChangeEvent : WechatWorkEvent, WechatWorkEvent.Serialization.IXmlSerializable
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置操作类型。
|
||||
/// </summary>
|
||||
[System.Xml.Serialization.XmlElement("ChangeType")]
|
||||
public string ActionType { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置新邮件数。
|
||||
/// </summary>
|
||||
[System.Xml.Serialization.XmlElement("Amount")]
|
||||
public int MailCount { get; set; }
|
||||
}
|
||||
}
|
@@ -31,6 +31,46 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.CgibinExmailAppComposeSendResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /cgi-bin/exmail/app/get_mail_list 接口。</para>
|
||||
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97505 </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CgibinExmailAppGetMailListResponse> ExecuteCgibinExmailAppGetMailListAsync(this WechatWorkClient client, Models.CgibinExmailAppGetMailListRequest request, CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (client is null) throw new ArgumentNullException(nameof(client));
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "app", "get_mail_list")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.CgibinExmailAppGetMailListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /cgi-bin/exmail/app/read_mail 接口。</para>
|
||||
/// <para>REF: https://developer.work.weixin.qq.com/document/path/97982 </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CgibinExmailAppReadMailResponse> ExecuteCgibinExmailAppReadMailAsync(this WechatWorkClient client, Models.CgibinExmailAppReadMailRequest request, CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (client is null) throw new ArgumentNullException(nameof(client));
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(request, HttpMethod.Post, "cgi-bin", "exmail", "app", "read_mail")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.CgibinExmailAppReadMailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Group
|
||||
|
@@ -0,0 +1,36 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /cgi-bin/exmail/app/get_mail_list 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CgibinExmailAppGetMailListRequest : WechatWorkRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置开始时间戳。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("begin_time")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("begin_time")]
|
||||
public long? BeginTimestamp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置结束时间戳。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("end_time")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
|
||||
public long? Endimestamp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置分页每页数量。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("limit")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("limit")]
|
||||
public int? Limit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置翻页标记。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cursor")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
|
||||
public string? Cursor { get; set; }
|
||||
}
|
||||
}
|
@@ -0,0 +1,44 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /cgi-bin/exmail/app/get_mail_list 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CgibinExmailAppGetMailListResponse : WechatWorkResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Mail
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置邮件 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mail_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mail_id")]
|
||||
public string MailId { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置分组列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mail_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mail_list")]
|
||||
public Types.Mail[] MailList { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置是否还有更多数据。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("has_more")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]
|
||||
public bool HasMore { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置翻页标记。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("next_cursor")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
|
||||
public string? NextCursor { get; set; }
|
||||
}
|
||||
}
|
@@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /cgi-bin/exmail/app/read_mail 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CgibinExmailAppReadMailRequest : WechatWorkRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置邮件 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mail_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mail_id")]
|
||||
public string MailId { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /cgi-bin/exmail/app/read_mail 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CgibinExmailAppReadMailResponse : WechatWorkResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置邮件 EML 内容。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mail_data")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mail_data")]
|
||||
public string MailData { get; set; } = default!;
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
<xml>
|
||||
<ToUserName><![CDATA[toUser]]></ToUserName>
|
||||
<FromUserName><![CDATA[sys]]></FromUserName>
|
||||
<CreateTime>1668831860</CreateTime>
|
||||
<MsgType><![CDATA[event]]></MsgType>
|
||||
<Event><![CDATA[app_email_change]]></Event>
|
||||
<ChangeType><![CDATA[receive_email]]></ChangeType>
|
||||
<Amount><![CDATA[2]]></Amount>
|
||||
</xml>
|
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"begin_time": 1668441600,
|
||||
"end_time": 1668527999,
|
||||
"cursor": "CURSOR",
|
||||
"limit": 100
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"errcode": 0,
|
||||
"errmsg": "ok",
|
||||
"next_cursor": "NEXT_CURSOR",
|
||||
"has_more": 0,
|
||||
"mail_list": [
|
||||
{
|
||||
"mail_id": "MAIL_ID"
|
||||
}
|
||||
]
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"mail_id": "MAIL_ID"
|
||||
}
|
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"errcode": 0,
|
||||
"errmsg": "ok",
|
||||
"mail_data": "MAIL_DATA"
|
||||
}
|
Reference in New Issue
Block a user