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 { /// /// 异步调用 [POST] /cgi-bin/appchat/create 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90245 /// /// /// /// /// public static async Task 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(request, HttpMethod.Post, "cgi-bin", "appchat", "create") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/appchat/update 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90246 /// /// /// /// /// public static async Task 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(request, HttpMethod.Post, "cgi-bin", "appchat", "update") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [GET] /cgi-bin/appchat/get 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90247 /// /// /// /// /// public static async Task 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(request, HttpMethod.Get, "cgi-bin", "appchat", "get") .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("chatid", request.ChatId); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); } /// /// 异步调用 [POST] /cgi-bin/appchat/send 接口。 /// REF: https://open.work.weixin.qq.com/api/doc/90000/90135/90248 /// /// /// /// /// public static async Task 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(request, HttpMethod.Post, "cgi-bin", "appchat", "send") .SetQueryParam("access_token", request.AccessToken); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } } }