feat(work): 封装部分企业微信接口

This commit is contained in:
Fu Diwei
2021-06-03 10:38:41 +08:00
parent b25eadfaa6
commit d290155dec
98 changed files with 4269 additions and 165 deletions

View File

@@ -14,6 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/agent/get 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90227 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90363 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -39,6 +40,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/agent/list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90227 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90363 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -81,6 +83,30 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync<Models.CgibinAgentSetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/agent/set_scope 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90583 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinAgentSetScopeResponse> ExecuteCgibinAgentSetScopeAsync(this WechatWorkClient client, Models.CgibinAgentSetScopeRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
if (!request.AgentId.HasValue)
request.AgentId = client.AgentId;
IFlurlRequest flurlReq = client
.CreateRequest(HttpMethod.Post, "cgi-bin", "agent", "set_scope")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinAgentSetScopeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#region Workbench
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/agent/set_workbench_template 接口。</para>

View File

@@ -0,0 +1,99 @@
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.Work
{
public static class WechatWorkClientExecuteCgibinAppChatExtensions
{
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/appchat/create 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90245 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinAppChatCreateResponse> ExecuteCgibinAppChatCreateAsync(this WechatWorkClient client, Models.CgibinAppChatCreateRequest 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(HttpMethod.Post, "cgi-bin", "appchat", "create")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinAppChatCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/appchat/update 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90246 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinAppChatUpdateResponse> ExecuteCgibinAppChatUpdateAsync(this WechatWorkClient client, Models.CgibinAppChatUpdateRequest 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(HttpMethod.Post, "cgi-bin", "appchat", "update")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinAppChatUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/appchat/get 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90247 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinAppChatGetResponse> ExecuteCgibinAppChatGetAsync(this WechatWorkClient client, Models.CgibinAppChatGetRequest 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(HttpMethod.Get, "cgi-bin", "appchat", "get")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("chatid", request.ChatId);
return await client.SendRequestAsync<Models.CgibinAppChatGetResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/appchat/send 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90248 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinAppChatSendResponse> ExecuteCgibinAppChatSendAsync(this WechatWorkClient client, Models.CgibinAppChatSendRequest 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(HttpMethod.Post, "cgi-bin", "appchat", "send")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinAppChatSendResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@@ -14,6 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/batch/invite 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90975 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91127 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -35,6 +36,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/batch/syncuser 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90980 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91130 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -56,6 +58,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/batch/replaceuser 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90981 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91131 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -77,6 +80,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/batch/replaceparty 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90981 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91132 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -98,6 +102,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/batch/getresult 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90983 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91133 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>

View File

@@ -14,6 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/corpgroup/corp/list_app_share_info 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93403 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93405 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>

View File

@@ -14,6 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/department/create 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90205 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90341 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -35,6 +36,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/department/update 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90206 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90342 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -56,6 +58,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/department/delete 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90206 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90343 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -78,6 +81,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/department/list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90208 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90344 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>

View File

@@ -33,6 +33,28 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestAsync<Models.CgibinGetTokenResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/getcallbackip 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90930 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91116 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinGetCallbackIpResponse> ExecuteCgibinGetCallbackIpAsync(this WechatWorkClient client, Models.CgibinGetCallbackIpRequest 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(HttpMethod.Get, "cgi-bin", "getcallbackip")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestAsync<Models.CgibinGetCallbackIpResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/get_api_domain_ip 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92520 </para>

View File

@@ -14,6 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/externalcontact/get_follow_user_list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92571 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92576 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -35,6 +36,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/close_temp_chat 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92572 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92577 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -56,6 +58,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/externalcontact/list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92113 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92264 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -78,6 +81,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/externalcontact/get 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92113 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92265 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -103,6 +107,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/batch/get_by_user 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92115 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93010 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -124,6 +129,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/remark 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92994 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92694 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -145,6 +151,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/mark_tag 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92118 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92697 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -164,8 +171,9 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_unassigned_listr 接口。</para>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_unassigned_list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92124 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92273 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -187,6 +195,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_user_behavior_data 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92132 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92275 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -205,10 +214,32 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactGetUserBehaviorDataResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/unionid_to_external_userid 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93274 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactUnionIdToExternalUserIdResponse> ExecuteCgibinExternalContactUnionIdToExternalUserIdAsync(this WechatWorkClient client, Models.CgibinExternalContactUnionIdToExternalUserIdRequest 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(HttpMethod.Post, "cgi-bin", "externalcontact", "unionid_to_external_userid")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactUnionIdToExternalUserIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#region ContactWay
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/add_contact_way 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92572 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92577 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -230,6 +261,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_contact_way 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92572 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92577 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -251,6 +283,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/update_contact_way 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92572 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92577 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -272,6 +305,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/del_contact_way 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92572 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92577 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -295,6 +329,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_corp_tag_list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92117 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92696 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -316,6 +351,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/add_corp_tag 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92117 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92696 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -337,6 +373,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/edit_corp_tag 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92117 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92696 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -358,6 +395,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/del_corp_tag 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92117 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92696 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -381,6 +419,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/transfer_customer 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92125 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94096 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -402,6 +441,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/transfer_result 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94088 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94097 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -419,10 +459,11 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactTransferResultResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/resigned/transfer_customer 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94081 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94100 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -444,6 +485,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/transfer_result 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94082 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94101 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -467,6 +509,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/groupchat/transfer 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92127 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93242 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -488,6 +531,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/groupchat/list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92120 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93414 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -509,6 +553,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/groupchat/get 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92122 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92707 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -531,6 +576,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/groupchat/statistic 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92133 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93476 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -552,6 +598,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/groupchat/statistic_group_by_day 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92133 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93476 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -576,6 +623,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_moment_list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93443 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -597,6 +645,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_moment_task 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93443 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -618,6 +667,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_moment_customer_list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93443 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -639,6 +689,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_moment_send_result 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93443 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -660,6 +711,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_moment_comments 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93443 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -683,6 +735,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/add_msg_template 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92135 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92698 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -704,6 +757,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_groupmsg_list_v2 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93338 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93439 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -725,6 +779,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_groupmsg_task 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93338 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93439 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -746,6 +801,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/get_groupmsg_send_result 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93338 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93439 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -769,6 +825,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/send_welcome_msg 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92137 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92599 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -790,6 +847,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/group_welcome_template/add 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92366 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93438 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -811,6 +869,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/group_welcome_template/edit 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92366 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93438 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -832,6 +891,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/group_welcome_template/get 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92366 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93438 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -853,6 +913,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/group_welcome_template/del 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92366 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93438 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -871,5 +932,31 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactGroupWelcomeTemplateDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region Message
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/externalcontact/message/send 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91609 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinExternalContactMessageSendResponse> ExecuteCgibinExternalContactMessageSendAsync(this WechatWorkClient client, Models.CgibinExternalContactMessageSendRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
if (!request.AgentId.HasValue)
request.AgentId = client.AgentId;
IFlurlRequest flurlReq = client
.CreateRequest(HttpMethod.Post, "cgi-bin", "externalcontact", "message", "send")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinExternalContactMessageSendResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
}
}

View File

@@ -115,5 +115,31 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync<Models.CgibinLinkedCorpDepartmentListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#region Message
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/linkedcorp/message/send 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90250 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinLinkedCorpMessageSendResponse> ExecuteCgibinLinkedCorpMessageSendAsync(this WechatWorkClient client, Models.CgibinLinkedCorpMessageSendRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
if (!request.AgentId.HasValue)
request.AgentId = client.AgentId;
IFlurlRequest flurlReq = client
.CreateRequest(HttpMethod.Post, "cgi-bin", "linkedcorp", "message", "send")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinLinkedCorpMessageSendResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
}
}

View File

@@ -15,6 +15,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/media/upload 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90253 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90389 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -77,6 +78,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/media/uploadimg 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90256 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90392 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -118,6 +120,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/media/get 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90254 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90390 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -140,6 +143,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/media/get/jssdk 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90255 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90391 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>

View File

@@ -0,0 +1,120 @@
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.Work
{
public static class WechatWorkClientExecuteCgibinMessageAuditExtensions
{
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/msgaudit/get_robot_info 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91774 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMessageAuditGetRobotInfoResponse> ExecuteCgibinMessageAuditGetRobotInfoAsync(this WechatWorkClient client, Models.CgibinMessageAuditGetRobotInfoRequest 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(HttpMethod.Get, "cgi-bin", "msgaudit", "get_robot_info")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("robot_id", request.RobotId);
return await client.SendRequestAsync<Models.CgibinMessageAuditGetRobotInfoResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/msgaudit/get_permit_user_list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91614 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMessageAuditGetPermitUserListResponse> ExecuteCgibinMessageAuditGetPermitUserListAsync(this WechatWorkClient client, Models.CgibinMessageAuditGetPermitUserListRequest 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(HttpMethod.Post, "cgi-bin", "msgaudit", "get_permit_user_list")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMessageAuditGetPermitUserListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/msgaudit/check_single_agree 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91782 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMessageAuditCheckSingleAgreeResponse> ExecuteCgibinMessageAuditCheckSingleAgreeAsync(this WechatWorkClient client, Models.CgibinMessageAuditCheckSingleAgreeRequest 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(HttpMethod.Post, "cgi-bin", "msgaudit", "check_single_agree")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMessageAuditCheckSingleAgreeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/msgaudit/check_room_agree 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91782 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMessageAuditCheckRoomAgreeResponse> ExecuteCgibinMessageAuditCheckRoomAgreeAsync(this WechatWorkClient client, Models.CgibinMessageAuditCheckRoomAgreeRequest 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(HttpMethod.Post, "cgi-bin", "msgaudit", "check_room_agree")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMessageAuditCheckRoomAgreeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/msgaudit/groupchat/get 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92951 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMessageAuditGroupChatGetResponse> ExecuteCgibinMessageAuditGroupChatGetAsync(this WechatWorkClient client, Models.CgibinMessageAuditGroupChatGetRequest 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(HttpMethod.Post, "cgi-bin", "msgaudit", "groupchat", "get")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinMessageAuditGroupChatGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.Work
{
public static class WechatWorkClientExecuteCgibinMessageExtensions
{
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/message/send 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90236 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90372 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMessageSendResponse> ExecuteCgibinMessageSendAsync(this WechatWorkClient client, Models.CgibinMessageSendRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
if (!request.AgentId.HasValue)
request.AgentId = client.AgentId;
IFlurlRequest flurlReq = client
.CreateRequest(HttpMethod.Post, "cgi-bin", "message", "send")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.CgibinMessageSendResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/message/update_taskcard 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91579 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91585 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMessageUpdateTaskCardResponse> ExecuteCgibinMessageUpdateTaskCardAsync(this WechatWorkClient client, Models.CgibinMessageUpdateTaskCardRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
if (!request.AgentId.HasValue)
request.AgentId = client.AgentId;
IFlurlRequest flurlReq = client
.CreateRequest(HttpMethod.Post, "cgi-bin", "message", "update_taskcard")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.CgibinMessageUpdateTaskCardResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/message/get_statistics 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92369 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinMessageGetStatisticsResponse> ExecuteCgibinMessageGetStatisticsAsync(this WechatWorkClient client, Models.CgibinMessageGetStatisticsRequest 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(HttpMethod.Post, "cgi-bin", "message", "get_statistics")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.CgibinMessageGetStatisticsResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@@ -0,0 +1,295 @@
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.Work
{
public static class WechatWorkClientExecuteCgibinServiceExtensions
{
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/service/get_provider_token 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91200 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceGetProviderTokenResponse> ExecuteCgibinGetProviderTokenAsync(this WechatWorkClient client, Models.CgibinServiceGetProviderTokenRequest 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(HttpMethod.Post, "cgi-bin", "service", "get_provider_token")
.SetOptions(request);
var requestData = new { corpid = client.CorpId, provider_secret = client.AgentSecret };
return await client.SendRequestWithJsonAsync<Models.CgibinServiceGetProviderTokenResponse>(flurlReq, data: requestData, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/service/get_suite_token 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90600 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceGetSuiteTokenResponse> ExecuteCgibinGetSuiteTokenAsync(this WechatWorkClient client, Models.CgibinServiceGetSuiteTokenRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
if (string.IsNullOrEmpty(request.SuiteId))
request.SuiteId = client.SuiteId;
if (string.IsNullOrEmpty(request.SuiteSecret))
request.SuiteSecret = client.SuiteSecret;
IFlurlRequest flurlReq = client
.CreateRequest(HttpMethod.Post, "cgi-bin", "service", "get_suite_token")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.CgibinServiceGetSuiteTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/service/get_pre_auth_code 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90601 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceGetPreAuthCodeResponse> ExecuteCgibinGetPreAuthCodeAsync(this WechatWorkClient client, Models.CgibinServiceGetPreAuthCodeRequest 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(HttpMethod.Get, "cgi-bin", "service", "get_pre_auth_code")
.SetOptions(request)
.SetQueryParam("suite_access_token", request.AccessToken);
return await client.SendRequestAsync<Models.CgibinServiceGetPreAuthCodeResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/service/set_session_info 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90602 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceSetSessionInfoResponse> ExecuteCgibinServiceSetSessionInfoAsync(this WechatWorkClient client, Models.CgibinServiceSetSessionInfoRequest 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(HttpMethod.Post, "cgi-bin", "service", "get_pre_auth_code")
.SetOptions(request)
.SetQueryParam("suite_access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinServiceSetSessionInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/service/get_permanent_code 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90603 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceGetPermanentCodeResponse> ExecuteCgibinServiceGetPermanentCodeAsync(this WechatWorkClient client, Models.CgibinServiceGetPermanentCodeRequest 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(HttpMethod.Post, "cgi-bin", "service", "get_permanent_code")
.SetOptions(request)
.SetQueryParam("suite_access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinServiceGetPermanentCodeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/service/get_auth_info 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90604 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceGetAuthInfoResponse> ExecuteCgibinServiceGetAuthInfoAsync(this WechatWorkClient client, Models.CgibinServiceGetAuthInfoRequest 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(HttpMethod.Post, "cgi-bin", "service", "get_auth_info")
.SetOptions(request)
.SetQueryParam("suite_access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinServiceGetAuthInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/service/get_corp_token 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90605 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceGetCorpTokenResponse> ExecuteCgibinServiceGetCorpTokenAsync(this WechatWorkClient client, Models.CgibinServiceGetCorpTokenRequest 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(HttpMethod.Post, "cgi-bin", "service", "get_corp_token")
.SetOptions(request)
.SetQueryParam("suite_access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinServiceGetCorpTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/service/get_admin_list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90605 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceGetAdminListResponse> ExecuteCgibinServiceGetAdminListAsync(this WechatWorkClient client, Models.CgibinServiceGetAdminListRequest 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(HttpMethod.Post, "cgi-bin", "service", "get_admin_list")
.SetOptions(request)
.SetQueryParam("suite_access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinServiceGetAdminListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/service/getuserinfo3rd 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91121 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceUserInfo3rdResponse> ExecuteCgibinServiceUserInfo3rdAsync(this WechatWorkClient client, Models.CgibinServiceUserInfo3rdRequest 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(HttpMethod.Get, "cgi-bin", "service", "getuserinfo3rd")
.SetOptions(request)
.SetQueryParam("suite_access_token", request.AccessToken)
.SetQueryParam("code", request.Code);
return await client.SendRequestAsync<Models.CgibinServiceUserInfo3rdResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/service/getuserdetail3rd 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91122 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceUserDetail3rdResponse> ExecuteCgibinServiceUserDetail3rdAsync(this WechatWorkClient client, Models.CgibinServiceUserDetail3rdRequest 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(HttpMethod.Post, "cgi-bin", "service", "getuserdetail3rd")
.SetOptions(request)
.SetQueryParam("suite_access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinServiceUserDetail3rdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/service/get_login_info 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91125 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceGetLoginInfoResponse> ExecuteCgibinServiceGetLoginInfoAsync(this WechatWorkClient client, Models.CgibinServiceGetLoginInfoRequest 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(HttpMethod.Get, "cgi-bin", "service", "get_login_info")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinServiceGetLoginInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#region Register
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/service/get_register_code 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90581 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceGetRegisterCodeResponse> ExecuteCgibinServiceGetRegisterCodeAsync(this WechatWorkClient client, Models.CgibinServiceGetRegisterCodeRequest 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(HttpMethod.Get, "cgi-bin", "service", "get_register_code")
.SetOptions(request)
.SetQueryParam("provider_access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinServiceGetRegisterCodeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/service/get_register_info 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90582 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinServiceGetRegisterInfoResponse> ExecuteCgibinServiceGetRegisterInfoAsync(this WechatWorkClient client, Models.CgibinServiceGetRegisterInfoRequest 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(HttpMethod.Get, "cgi-bin", "service", "get_register_info")
.SetOptions(request)
.SetQueryParam("provider_access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinServiceGetRegisterInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
}
}

View File

@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.Work
{
public static class WechatWorkClientExecuteCgibinSyncExtensions
{
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/sync/contact_sync_success 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90584 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinSyncContactSyncSuccessResponse> ExecuteCgibinSyncContactSyncSuccessAsync(this WechatWorkClient client, Models.CgibinSyncContactSyncSuccessRequest 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(HttpMethod.Get, "cgi-bin", "sync", "contact_sync_success")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestAsync<Models.CgibinSyncContactSyncSuccessResponse>(flurlReq, cancellationToken: cancellationToken);
}
}
}

View File

@@ -14,6 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/tag/create 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90210 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90346 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -35,6 +36,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/tag/update 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90211 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90347 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -56,6 +58,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/tag/delete 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90212 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90348 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -78,6 +81,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/tag/list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90216 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90352 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -99,6 +103,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/tag/get 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90213 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90349 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -122,6 +127,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/tag/addtagusers 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90214 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90350 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -143,6 +149,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/tag/deltagusers 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90215 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90351 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>

View File

@@ -14,6 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/create 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90195 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90331 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -35,6 +36,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/get 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90196 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90332 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -57,6 +59,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/update 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90197 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90333 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -78,6 +81,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/delete 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90198 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90334 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -100,6 +104,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/batchdelete 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90199 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90335 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -121,6 +126,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/simplelist 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90200 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90336 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -146,6 +152,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/list 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90201 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90337 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -171,6 +178,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/convert_to_openid 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90202 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90338 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -192,6 +200,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/convert_to_userid 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90202 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90338 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -210,28 +219,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestWithJsonAsync<Models.CgibinUserConvertToUserIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/authsucc 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90203 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinUserAuthSuccessResponse> ExecuteCgibinUserAuthSuccessAsync(this WechatWorkClient client, Models.CgibinUserAuthSuccessRequest 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(HttpMethod.Get, "cgi-bin", "user", "authsucc")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("userid", request.UserId);
return await client.SendRequestAsync<Models.CgibinUserAuthSuccessResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/getuserinfo 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91023 </para>
@@ -255,6 +242,50 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
return await client.SendRequestAsync<Models.CgibinUserGetUserInfoResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/getuserid 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91693 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinUserGetUserIdResponse> ExecuteCgibinUserGetUserIdAsync(this WechatWorkClient client, Models.CgibinUserGetUserIdRequest 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(HttpMethod.Post, "cgi-bin", "user", "getuserid")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.CgibinUserGetUserIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /cgi-bin/user/authsucc 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90203 </para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90001/90143/90339 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinUserAuthSuccessResponse> ExecuteCgibinUserAuthSuccessAsync(this WechatWorkClient client, Models.CgibinUserAuthSuccessRequest 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(HttpMethod.Get, "cgi-bin", "user", "authsucc")
.SetOptions(request)
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("userid", request.UserId);
return await client.SendRequestAsync<Models.CgibinUserAuthSuccessResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/user/get_active_stat 接口。</para>
/// <para>REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92714 </para>