using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Flurl; using Flurl.Http; namespace SKIT.FlurlHttpClient.Wechat.Work { public static class WechatWorkClientExecuteCgibinExternalContactExtensions { /// /// 异步调用 [GET] /cgi-bin/externalcontact/get_follow_user_list 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92571 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92576 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetFollowUserListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetFollowUserListRequest 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.Get, "cgi-bin", "externalcontact", "get_follow_user_list") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/close_temp_chat 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92572 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92577 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactCloseTempChatAsync(this WechatWorkClient client, Models.CgibinExternalContactCloseTempChatRequest 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", "externalcontact", "close_temp_chat") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [GET] /cgi-bin/externalcontact/list 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92113 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92264 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactListAsync(this WechatWorkClient client, Models.CgibinExternalContactListRequest 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.Get, "cgi-bin", "externalcontact", "list") .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("userid", request.UserId); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); } /// /// 异步调用 [GET] /cgi-bin/externalcontact/get 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92114 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92265 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92322 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/91670 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetAsync(this WechatWorkClient client, Models.CgibinExternalContactGetRequest 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.Get, "cgi-bin", "externalcontact", "get") .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("external_userid", request.ExternalUserId); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/batch/get_by_user 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92994 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93010 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactBatchGetByUserAsync(this WechatWorkClient client, Models.CgibinExternalContactBatchGetByUserRequest 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", "externalcontact", "batch", "get_by_user") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/remark 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92994 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92694 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactRemarkAsync(this WechatWorkClient client, Models.CgibinExternalContactRemarkRequest 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", "externalcontact", "remark") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/mark_tag 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92118 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92697 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactMarkTagAsync(this WechatWorkClient client, Models.CgibinExternalContactMarkTagRequest 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", "externalcontact", "mark_tag") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_unassigned_list 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92124 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92273 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetUnassignedListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetUnassignedListRequest 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", "externalcontact", "get_unassigned_list") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_user_behavior_data 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92132 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92275 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetUserBehaviorDataAsync(this WechatWorkClient client, Models.CgibinExternalContactGetUserBehaviorDataRequest 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", "externalcontact", "get_user_behavior_data") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/unionid_to_external_userid 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93274 /// /// /// /// /// public static async Task 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(request, HttpMethod.Post, "cgi-bin", "externalcontact", "unionid_to_external_userid") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/convert_to_openid 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92323 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92292 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactConvertToOpenIdAsync(this WechatWorkClient client, Models.CgibinExternalContactConvertToOpenIdRequest 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", "externalcontact", "convert_to_openid") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/batch_to_external_userid 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92506 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactBatchToExternalUserIdAsync(this WechatWorkClient client, Models.CgibinExternalContactBatchToExternalUserIdRequest 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", "externalcontact", "batch_to_external_userid") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/opengid_to_chatid 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94822 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactOpenGroupIdToChatIdAsync(this WechatWorkClient client, Models.CgibinExternalContactOpenGroupIdToChatIdRequest 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", "externalcontact", "opengid_to_chatid") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #region ContactWay /// /// 异步调用 [POST] /cgi-bin/externalcontact/add_contact_way 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92572 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92577 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactAddContactWayAsync(this WechatWorkClient client, Models.CgibinExternalContactAddContactWayRequest 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", "externalcontact", "add_contact_way") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_contact_way 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92572 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92577 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetContactWayAsync(this WechatWorkClient client, Models.CgibinExternalContactGetContactWayRequest 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", "externalcontact", "get_contact_way") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/update_contact_way 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92572 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92577 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactUpdateContactWayAsync(this WechatWorkClient client, Models.CgibinExternalContactUpdateContactWayRequest 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", "externalcontact", "update_contact_way") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/del_contact_way 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92572 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92577 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactDeleteContactWayAsync(this WechatWorkClient client, Models.CgibinExternalContactDeleteContactWayRequest 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", "externalcontact", "del_contact_way") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion #region CorpTag /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_corp_tag_list 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92117 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92696 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetCorpTagListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetCorpTagListRequest 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", "externalcontact", "get_corp_tag_list") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/add_corp_tag 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92117 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92696 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactAddCorpTagAsync(this WechatWorkClient client, Models.CgibinExternalContactAddCorpTagRequest 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", "externalcontact", "add_corp_tag") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/edit_corp_tag 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92117 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92696 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactEditCorpTagAsync(this WechatWorkClient client, Models.CgibinExternalContactEditCorpTagRequest 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", "externalcontact", "edit_corp_tag") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/del_corp_tag 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92117 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92696 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactDeleteCorpTagAsync(this WechatWorkClient client, Models.CgibinExternalContactDeleteCorpTagRequest 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", "externalcontact", "del_corp_tag") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion #region Transfer /// /// 异步调用 [POST] /cgi-bin/externalcontact/transfer_customer 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92125 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94096 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactTransferCustomerAsync(this WechatWorkClient client, Models.CgibinExternalContactTransferCustomerRequest 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", "externalcontact", "transfer_customer") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/transfer_result 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94088 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94097 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactTransferResultAsync(this WechatWorkClient client, Models.CgibinExternalContactTransferResultRequest 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", "externalcontact", "transfer_result") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/resigned/transfer_customer 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94081 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94100 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactResignedTransferCustomerAsync(this WechatWorkClient client, Models.CgibinExternalContactResignedTransferCustomerRequest 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", "externalcontact", "resigned", "transfer_customer") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/resigned/transfer_result 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/94082 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/94101 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactResignedTransferResultAsync(this WechatWorkClient client, Models.CgibinExternalContactResignedTransferResultRequest 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", "externalcontact", "resigned", "transfer_result") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion #region GroupChat /// /// 异步调用 [POST] /cgi-bin/externalcontact/groupchat/transfer 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92127 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93242 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGroupChatTransferAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatTransferRequest 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", "externalcontact", "groupchat", "transfer") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/groupchat/list 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92120 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93414 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGroupChatListAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatListRequest 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", "externalcontact", "groupchat", "list") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/groupchat/get 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92122 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92707 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGroupChatGetAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatGetRequest 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", "externalcontact", "groupchat", "get") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #region GroupChatStatistics /// /// 异步调用 [POST] /cgi-bin/externalcontact/groupchat/statistic 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92133 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93476 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGroupChatStatisticsAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatStatisticsRequest 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", "externalcontact", "groupchat", "statistic") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/groupchat/statistic_group_by_day 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92133 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93476 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGroupChatStatisticsGroupByDayAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupChatStatisticsGroupByDayRequest 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", "externalcontact", "groupchat", "statistic_group_by_day") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion #endregion #region Moment /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_moment_list 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93443 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetMomentListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetMomentListRequest 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", "externalcontact", "get_moment_list") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/add_moment_task 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95094 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/95095 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactAddMomentTaskAsync(this WechatWorkClient client, Models.CgibinExternalContactAddMomentTaskRequest 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", "externalcontact", "add_moment_task") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_moment_task 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93443 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetMomentTaskAsync(this WechatWorkClient client, Models.CgibinExternalContactGetMomentTaskRequest 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", "externalcontact", "get_moment_task") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_moment_task_result 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95094 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/95095 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetMomentTaskResultAsync(this WechatWorkClient client, Models.CgibinExternalContactGetMomentTaskResultRequest 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", "externalcontact", "get_moment_task_result") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_moment_customer_list 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93443 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetMomentCustomerListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetMomentCustomerListRequest 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", "externalcontact", "get_moment_customer_list") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_moment_send_result 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93443 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetMomentSendResultAsync(this WechatWorkClient client, Models.CgibinExternalContactGetMomentSendResultRequest 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", "externalcontact", "get_moment_send_result") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_moment_comments 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93333 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93443 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetMomentCommentsAsync(this WechatWorkClient client, Models.CgibinExternalContactGetMomentCommentsRequest 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", "externalcontact", "get_moment_comments") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion #region GroupMessage /// /// 异步调用 [POST] /cgi-bin/externalcontact/add_msg_template 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92135 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92698 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactAddMessageTemplateAsync(this WechatWorkClient client, Models.CgibinExternalContactAddMessageTemplateRequest 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", "externalcontact", "add_msg_template") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_groupmsg_list_v2 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93338 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93439 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetGroupMessageListV2Async(this WechatWorkClient client, Models.CgibinExternalContactGetGroupMessageListV2Request 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", "externalcontact", "get_groupmsg_list_v2") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_groupmsg_task 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93338 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93439 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetGroupMessageTaskAsync(this WechatWorkClient client, Models.CgibinExternalContactGetGroupMessageTaskRequest 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", "externalcontact", "get_groupmsg_task") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_groupmsg_send_result 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/93338 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93439 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetGroupMessageSendResultAsync(this WechatWorkClient client, Models.CgibinExternalContactGetGroupMessageSendResultRequest 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", "externalcontact", "get_groupmsg_send_result") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion #region GroupWelcome /// /// 异步调用 [POST] /cgi-bin/externalcontact/send_welcome_msg 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92137 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92599 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactSendWelcomeMessageAsync(this WechatWorkClient client, Models.CgibinExternalContactSendWelcomeMessageRequest 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", "externalcontact", "send_welcome_msg") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/group_welcome_template/add 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92366 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93438 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGroupWelcomeTemplateAddAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupWelcomeTemplateAddRequest 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", "externalcontact", "group_welcome_template", "add") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/group_welcome_template/edit 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92366 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93438 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGroupWelcomeTemplateEditAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupWelcomeTemplateEditRequest 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", "externalcontact", "group_welcome_template", "edit") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/group_welcome_template/get 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92366 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93438 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGroupWelcomeTemplateGetAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupWelcomeTemplateGetRequest 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", "externalcontact", "group_welcome_template", "get") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/group_welcome_template/del 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92366 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/93438 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGroupWelcomeTemplateDeleteAsync(this WechatWorkClient client, Models.CgibinExternalContactGroupWelcomeTemplateDeleteRequest 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", "externalcontact", "group_welcome_template", "del") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion #region Message /// /// 异步调用 [POST] /cgi-bin/externalcontact/message/send 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/91609 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92321 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92291 /// /// /// /// /// public static async Task 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 == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client .CreateRequest(request, HttpMethod.Post, "cgi-bin", "externalcontact", "message", "send") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion #region Subscribe /// /// 异步调用 [GET] /cgi-bin/externalcontact/get_subscribe_qr_code 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92320 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92197 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetSubscribeQrcodeAsync(this WechatWorkClient client, Models.CgibinExternalContactGetSubscribeQrcodeRequest 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.Get, "cgi-bin", "externalcontact", "get_subscribe_qr_code") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/set_subscribe_mode 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92318 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92290 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactSetSubscribeModeAsync(this WechatWorkClient client, Models.CgibinExternalContactSetSubscribeModeRequest 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", "externalcontact", "set_subscribe_mode") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [GET] /cgi-bin/externalcontact/get_subscribe_mode 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/92318 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/92290 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetSubscribeModeAsync(this WechatWorkClient client, Models.CgibinExternalContactGetSubscribeModeRequest 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.Get, "cgi-bin", "externalcontact", "get_subscribe_mode") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); } #endregion #region CustomerStrategy /// /// 异步调用 [POST] /cgi-bin/externalcontact/customer_strategy/list 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactCustomerStrategyListAsync(this WechatWorkClient client, Models.CgibinExternalContactCustomerStrategyListRequest 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", "externalcontact", "customer_strategy", "list") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/customer_strategy/get 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactCustomerStrategyGetAsync(this WechatWorkClient client, Models.CgibinExternalContactCustomerStrategyGetRequest 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", "externalcontact", "customer_strategy", "get") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/customer_strategy/get_range 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactCustomerStrategyGetRangeAsync(this WechatWorkClient client, Models.CgibinExternalContactCustomerStrategyGetRangeRequest 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", "externalcontact", "customer_strategy", "get_range") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/customer_strategy/create 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactCustomerStrategyCreateAsync(this WechatWorkClient client, Models.CgibinExternalContactCustomerStrategyCreateRequest 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", "externalcontact", "customer_strategy", "create") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/customer_strategy/edit 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactCustomerStrategyEditAsync(this WechatWorkClient client, Models.CgibinExternalContactCustomerStrategyEditRequest 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", "externalcontact", "customer_strategy", "edit") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/customer_strategy/del 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactCustomerStrategyDeleteAsync(this WechatWorkClient client, Models.CgibinExternalContactCustomerStrategyDeleteRequest 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", "externalcontact", "customer_strategy", "del") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion #region StrategyTag /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_strategy_tag_list 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94882 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetStrategyTagListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetStrategyTagListRequest 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", "externalcontact", "get_strategy_tag_list") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/add_strategy_tag 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94882 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactAddStrategyTagAsync(this WechatWorkClient client, Models.CgibinExternalContactAddStrategyTagRequest 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", "externalcontact", "add_strategy_tag") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/edit_strategy_tag 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94882 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactEditStrategyTagAsync(this WechatWorkClient client, Models.CgibinExternalContactEditStrategyTagRequest 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", "externalcontact", "edit_strategy_tag") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/del_strategy_tag 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94882 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactDeleteStrategyTagAsync(this WechatWorkClient client, Models.CgibinExternalContactDeleteStrategyTagRequest 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", "externalcontact", "del_strategy_tag") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion #region CustomerStrategy /// /// 异步调用 [POST] /cgi-bin/externalcontact/moment_strategy/list 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94890 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactMomentStrategyListAsync(this WechatWorkClient client, Models.CgibinExternalContactMomentStrategyListRequest 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", "externalcontact", "moment_strategy", "list") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/moment_strategy/get 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactMomentStrategyGetAsync(this WechatWorkClient client, Models.CgibinExternalContactMomentStrategyGetRequest 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", "externalcontact", "moment_strategy", "get") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/moment_strategy/get_range 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94890 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactMomentStrategyGetRangeAsync(this WechatWorkClient client, Models.CgibinExternalContactMomentStrategyGetRangeRequest 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", "externalcontact", "moment_strategy", "get_range") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/moment_strategy/create 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94890 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactMomentStrategyCreateAsync(this WechatWorkClient client, Models.CgibinExternalContactMomentStrategyCreateRequest 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", "externalcontact", "moment_strategy", "create") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/moment_strategy/edit 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactMomentStrategyEditAsync(this WechatWorkClient client, Models.CgibinExternalContactMomentStrategyEditRequest 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", "externalcontact", "moment_strategy", "edit") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/moment_strategy/del 接口。 /// REF: https://work.weixin.qq.com/api/doc/90000/90135/94883 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactMomentStrategyDeleteAsync(this WechatWorkClient client, Models.CgibinExternalContactMomentStrategyDeleteRequest 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", "externalcontact", "moment_strategy", "del") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion #region ProductAlbum /// /// 异步调用 [POST] /cgi-bin/externalcontact/add_product_album 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95096 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/95131 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactAddProductAlbumAsync(this WechatWorkClient client, Models.CgibinExternalContactAddProductAlbumRequest 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", "externalcontact", "add_product_album") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_product_album_list 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95096 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/95131 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetProductAlbumListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetProductAlbumListRequest 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", "externalcontact", "get_product_album_list") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_product_album 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95096 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/95131 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetProductAlbumAsync(this WechatWorkClient client, Models.CgibinExternalContactGetProductAlbumRequest 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", "externalcontact", "get_product_album") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/update_product_album 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95096 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/95131 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactUpdateProductAlbumAsync(this WechatWorkClient client, Models.CgibinExternalContactUpdateProductAlbumRequest 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", "externalcontact", "update_product_album") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/delete_product_album 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95096 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/95131 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactDeleteProductAlbumAsync(this WechatWorkClient client, Models.CgibinExternalContactDeleteProductAlbumRequest 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", "externalcontact", "delete_product_album") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion #region InterceptRule /// /// 异步调用 [POST] /cgi-bin/externalcontact/add_intercept_rule 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95097 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/95130 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactAddInterceptRuleAsync(this WechatWorkClient client, Models.CgibinExternalContactAddInterceptRuleRequest 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", "externalcontact", "add_intercept_rule") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [GET] /cgi-bin/externalcontact/get_intercept_rule_list 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95097 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/95130 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetInterceptRuleListAsync(this WechatWorkClient client, Models.CgibinExternalContactGetInterceptRuleListRequest 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.Get, "cgi-bin", "externalcontact", "get_intercept_rule_list") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/get_intercept_rule 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95097 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/95130 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactGetInterceptRuleAsync(this WechatWorkClient client, Models.CgibinExternalContactGetInterceptRuleRequest 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", "externalcontact", "get_intercept_rule") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/update_intercept_rule 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95097 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/95130 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactUpdateInterceptRuleAsync(this WechatWorkClient client, Models.CgibinExternalContactUpdateInterceptRuleRequest 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", "externalcontact", "update_intercept_rule") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/externalcontact/del_intercept_rule 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/95097 /// REF: https://open.work.weixin.qq.com/api/doc/90001/90143/95130 /// /// /// /// /// public static async Task ExecuteCgibinExternalContactDeleteInterceptRuleAsync(this WechatWorkClient client, Models.CgibinExternalContactDeleteInterceptRuleRequest 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", "externalcontact", "del_intercept_rule") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion } }