Skip to content

Commit 49f6172

Browse files
committed
feat(work): 新增通过邮箱获取 UserId 接口
1 parent 8b764f5 commit 49f6172

5 files changed

Lines changed: 63 additions & 0 deletions

File tree

src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinUserExtensions.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,29 @@ public static class WechatWorkClientExecuteCgibinUserExtensions
290290
return await client.SendFlurlRequestAsJsonAsync<Models.CgibinUserGetUserIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
291291
}
292292

293+
/// <summary>
294+
/// <para>异步调用 [POST] /cgi-bin/user/get_userid_by_email 接口。</para>
295+
/// <para>
296+
/// REF: <br/>
297+
/// <![CDATA[ https://developer.work.weixin.qq.com/document/path/95895 ]]>
298+
/// </para>
299+
/// </summary>
300+
/// <param name="client"></param>
301+
/// <param name="request"></param>
302+
/// <param name="cancellationToken"></param>
303+
/// <returns></returns>
304+
public static async Task<Models.CgibinUserGetUserIdByEmailResponse> ExecuteCgibinUserGetUserIdByEmailAsync(this WechatWorkClient client, Models.CgibinUserGetUserIdByEmailRequest request, CancellationToken cancellationToken = default)
305+
{
306+
if (client is null) throw new ArgumentNullException(nameof(client));
307+
if (request is null) throw new ArgumentNullException(nameof(request));
308+
309+
IFlurlRequest flurlReq = client
310+
.CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "user", "get_userid_by_email")
311+
.SetQueryParam("access_token", request.AccessToken);
312+
313+
return await client.SendFlurlRequestAsJsonAsync<Models.CgibinUserGetUserIdByEmailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
314+
}
315+
293316
/// <summary>
294317
/// <para>异步调用 [POST] /cgi-bin/user/get_active_stat 接口。</para>
295318
/// <para>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /cgi-bin/user/get_userid_by_email 接口的请求。</para>
5+
/// </summary>
6+
public class CgibinUserGetUserIdByEmailRequest : WechatWorkRequest
7+
{
8+
/// <summary>
9+
/// 获取或设置邮箱类型。
10+
/// </summary>
11+
[Newtonsoft.Json.JsonProperty("email_type")]
12+
[System.Text.Json.Serialization.JsonPropertyName("email_type")]
13+
public int? EmailType { get; set; }
14+
15+
/// <summary>
16+
/// 获取或设置邮箱。
17+
/// </summary>
18+
[Newtonsoft.Json.JsonProperty("email")]
19+
[System.Text.Json.Serialization.JsonPropertyName("email")]
20+
public string Email { get; set; } = string.Empty;
21+
}
22+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /cgi-bin/user/get_userid_by_email 接口的响应。</para>
5+
/// </summary>
6+
public class CgibinUserGetUserIdByEmailResponse : CgibinUserGetUserIdResponse
7+
{
8+
}
9+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"email": "12345@qq.com",
3+
"email_type": 1
4+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"errcode": 0,
3+
"errmsg": "ok",
4+
"userid": "zhangsan"
5+
}

0 commit comments

Comments
 (0)