diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiBotExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiBotExtensions.cs new file mode 100644 index 00000000..d4d765fc --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiBotExtensions.cs @@ -0,0 +1,107 @@ +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI +{ + public static class WechatOpenAIClientExecuteOpenApiBotExtensions + { + /// + /// 异步调用 [POST] /openapi/batchimportskill/{TOKEN} 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/skill/batchimportskill.html + /// + /// + /// + /// + /// + public static async Task ExecuteOpenApiBatchImportSkillAsync(this WechatOpenAIClient client, Models.OpenApiBatchImportSkillRequest 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, "openapi", "batchimportskill", client.Credentials.PushToken!); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /openapi/publish/{TOKEN} 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/skill/publish.html + /// + /// + /// + /// + /// + public static async Task ExecuteOpenApiPublishAsync(this WechatOpenAIClient client, Models.OpenApiPublishRequest 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, "openapi", "publish", client.Credentials.PushToken!); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /openapi/publish_progress/{TOKEN} 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/skill/publish_progress.html + /// + /// + /// + /// + /// + public static async Task ExecuteOpenApiPublishProgressAsync(this WechatOpenAIClient client, Models.OpenApiPublishProgressRequest 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, "openapi", "publish_progress", client.Credentials.PushToken!); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /openapi/setautoreply/{TOKEN} 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/living/setautoreply.html + /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/skill/publish_progress.html + /// + /// + /// + /// + /// + public static async Task ExecuteOpenApiSetAutoReplyAsync(this WechatOpenAIClient client, Models.OpenApiSetAutoReplyRequest 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, "openapi", "setautoreply", client.Credentials.PushToken!); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /openapi/label/batchset/{TOKEN} 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/batchsetlabel.html + /// + /// + /// + /// + /// + public static async Task ExecuteOpenApiLabelBatchSetAsync(this WechatOpenAIClient client, Models.OpenApiLabelBatchSetRequest 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, "openapi", "label", "batchset", client.Credentials.PushToken!); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiLivingExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiLivingExtensions.cs index 7b2a30c0..fbdd392b 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiLivingExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiLivingExtensions.cs @@ -27,25 +27,6 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } - /// - /// 异步调用 [POST] /openapi/setautoreply/{TOKEN} 接口。 - /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/living/setautoreply.html - /// - /// - /// - /// - /// - public static async Task ExecuteOpenApiBatchSetAutoReplyAsync(this WechatOpenAIClient client, Models.OpenApiBatchSetAutoReplyRequest 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, "openapi", "setautoreply", client.Credentials.PushToken!); - - return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); - } - /// /// 异步调用 [POST] /openapi/generatereport/{TOKEN} 接口。 /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/living/setautoreply.html diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiMpExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiMpExtensions.cs index c7b19d0a..7d457155 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiMpExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiMpExtensions.cs @@ -96,16 +96,16 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI /// /// /// - public static async Task ExecuteFileUploadAsync(this WechatOpenAIClient client, Models.FileUploadRequest request, CancellationToken cancellationToken = default) + public static async Task ExecuteOpenApiAssetsUploadAsync(this WechatOpenAIClient client, Models.OpenApiAssetsUploadRequest request, CancellationToken cancellationToken = default) { if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); if (request.FileName == null) - request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".csv"; + request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".jpg"; if (request.FileContentType == null) - request.FileContentType = "text/csv"; + request.FileContentType = "image/jpeg"; IFlurlRequest flurlReq = client .CreateRequest(request, HttpMethod.Post, "openapi", "assetsupload", client.Credentials.PushToken!); diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiThirdKfExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiThirdKfExtensions.cs index a4f2bff3..d9091e93 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiThirdKfExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiThirdKfExtensions.cs @@ -11,6 +11,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI /// /// 异步调用 [POST] /openapi/sendmsg/{TOKEN} 接口。 /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/thirdkefu/sendmsg.html + /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/sendmsg.html /// /// /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiBatchImportSkillRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiBatchImportSkillRequest.cs new file mode 100644 index 00000000..e30e250f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiBatchImportSkillRequest.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Xml.Serialization; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /openapi/batchimportskill/{TOKEN} 接口的请求。 + /// + [XmlRoot("xml")] + public class OpenApiBatchImportSkillRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable + { + public static class Types + { + public class Skill + { + /// + /// 获取或设置技能名称。 + /// + [XmlElement("skillname")] + public string SkillName { get; set; } = string.Empty; + + /// + /// 获取或设置标准问题。 + /// + [XmlElement("title")] + public string Title { get; set; } = string.Empty; + + /// + /// 获取或设置相似问题列表。 + /// + [XmlElement("question")] + public List QuestionList { get; set; } = new List(); + + /// + /// 获取或设置机器人回答列表。 + /// + [XmlElement("answer")] + public List AnswerList { get; set; } = new List(); + } + } + + /// + /// 获取或设置管理员 ID。 + /// + [XmlElement("managerid")] + public string ManagetId { get; set; } = string.Empty; + + /// + /// 获取或设置技能列表。 + /// + [XmlElement("skill")] + public List SkillList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiBatchImportSkillResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiBatchImportSkillResponse.cs new file mode 100644 index 00000000..288b4eec --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiBatchImportSkillResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /openapi/batchimportskill/{TOKEN} 接口的响应。 + /// + public class OpenApiBatchImportSkillResponse : WechatOpenAIResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiLabelBatchSetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiLabelBatchSetRequest.cs new file mode 100644 index 00000000..9b5e803a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiLabelBatchSetRequest.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Xml.Serialization; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /openapi/label/batchset/{TOKEN} 接口的请求。 + /// + [XmlRoot("xml")] + public class OpenApiLabelBatchSetRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable + { + /// + /// 获取或设置微信 AppId。 + /// + [XmlElement("appid")] + public string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置标签名称。 + /// + [XmlElement("category")] + public string Category { get; set; } = string.Empty; + + /// + /// 获取或设置二级标签名称。 + /// + [XmlElement("label")] + public string Label { get; set; } = string.Empty; + + /// + /// 获取或设置标签分类规则。 + /// + [XmlElement("desc")] + public string Description { get; set; } = string.Empty; + + /// + /// 获取或设置要设置标签的 OpenId 列表。 + /// + [XmlArray("list")] + [XmlArrayItem("openid", Type = typeof(string))] + public List OpenIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiLabelBatchSetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiLabelBatchSetResponse.cs new file mode 100644 index 00000000..98baace9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiLabelBatchSetResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /openapi/label/batchset/{TOKEN} 接口的响应。 + /// + public class OpenApiLabelBatchSetResponse : WechatOpenAIResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishProgressRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishProgressRequest.cs new file mode 100644 index 00000000..6a1d92b3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishProgressRequest.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Xml.Serialization; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /openapi/publish_progress/{TOKEN} 接口的请求。 + /// + [XmlRoot("xml")] + public class OpenApiPublishProgressRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable + { + /// + /// 获取或设置管理员 ID。 + /// + [XmlElement("managerid")] + public string ManagerId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishProgressResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishProgressResponse.cs new file mode 100644 index 00000000..8dadc4cf --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishProgressResponse.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /openapi/publish_progress/{TOKEN} 接口的响应。 + /// + public class OpenApiPublishProgressResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置进度(范围:0~100)。 + /// + [Newtonsoft.Json.JsonProperty("progress")] + [System.Text.Json.Serialization.JsonPropertyName("progress")] + public int Progress { get; set; } + + /// + /// 获取或设置状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishRequest.cs new file mode 100644 index 00000000..292e1d83 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishRequest.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Xml.Serialization; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /openapi/publish/{TOKEN} 接口的请求。 + /// + [XmlRoot("xml")] + public class OpenApiPublishRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable + { + /// + /// 获取或设置管理员 ID。 + /// + [XmlElement("managerid")] + public string ManagerId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishResponse.cs new file mode 100644 index 00000000..608565af --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /openapi/publish/{TOKEN} 接口的响应。 + /// + public class OpenApiPublishResponse : WechatOpenAIResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiLiving/OpenApiBatchSetAutoReplyRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiSetAutoReplyRequest.cs similarity index 71% rename from src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiLiving/OpenApiBatchSetAutoReplyRequest.cs rename to src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiSetAutoReplyRequest.cs index b9118b64..853912e6 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiLiving/OpenApiBatchSetAutoReplyRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiSetAutoReplyRequest.cs @@ -8,13 +8,13 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models /// 表示 [POST] /openapi/setautoreply/{TOKEN} 接口的请求。 /// [XmlRoot("xml")] - public class OpenApiBatchSetAutoReplyRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable + public class OpenApiSetAutoReplyRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable { /// /// 获取或设置管理员 ID。 /// [XmlElement("managerid")] - public string ManagerId { get; set; } = string.Empty; + public string ManagetId { get; set; } = string.Empty; /// /// 获取或设置技能名称。 @@ -25,20 +25,20 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models /// /// 获取或设置标准问题。 /// - [XmlElement("title", IsNullable = true)] + [XmlElement("title")] public string Title { get; set; } = string.Empty; /// /// 获取或设置自动回答的内容。 /// - [XmlElement("content", IsNullable = true)] + [XmlElement("content")] public string Content { get; set; } = string.Empty; /// - /// 获取或设置要设置的相似问题列表。 + /// 获取或设置相似问题列表。 /// [XmlArray("list")] [XmlArrayItem("question", Type = typeof(string))] - public List QuestionId { get; set; } = new List(); + public List QuestionList { get; set; } = new List(); } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiLiving/OpenApiBatchSetAutoReplyResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiSetAutoReplyResponse.cs similarity index 76% rename from src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiLiving/OpenApiBatchSetAutoReplyResponse.cs rename to src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiSetAutoReplyResponse.cs index b98c6deb..2788c7e0 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiLiving/OpenApiBatchSetAutoReplyResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiSetAutoReplyResponse.cs @@ -6,7 +6,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models /// /// 表示 [POST] /openapi/setautoreply/{TOKEN} 接口的响应。 /// - public class OpenApiBatchSetAutoReplyResponse : WechatOpenAIResponse + public class OpenApiSetAutoReplyResponse : WechatOpenAIResponse { } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListRequest.cs index 6a9c5e4d..c013f471 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListRequest.cs @@ -5,7 +5,7 @@ using System.Xml.Serialization; namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models { /// - /// 表示 [POST] /openapi/getbindlink/{TOKEN} 接口的请求。 + /// 表示 [POST] /openapi/getbindlist/{TOKEN} 接口的请求。 /// [XmlRoot("xml")] public class OpenApiGetBindListRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListResponse.cs index fcd428b7..2b775761 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListResponse.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models { /// - /// 表示 [POST] /openapi/getbindlink/{TOKEN} 接口的响应。 + /// 表示 [POST] /openapi/getbindlist/{TOKEN} 接口的响应。 /// public class OpenApiGetBindListResponse : WechatOpenAIResponse {