feat(openai): 移除第三方接入方式的相关接口模型,并重命名原平台接入方式的相关接口模型

This commit is contained in:
Fu Diwei 2022-11-21 11:30:38 +08:00
parent 922e70f8db
commit 16aaeb3c31
358 changed files with 373 additions and 8040 deletions

View File

@ -43,7 +43,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
throw new Exceptions.WechatApiEventSerializationException("Decrypt event failed, because there is no encoding AES key."); throw new Exceptions.WechatApiEventSerializationException("Decrypt event failed, because there is no encoding AES key.");
InnerEncryptedEvent encryptedEvent = client.JsonSerializer.Deserialize<InnerEncryptedEvent>(callbackJson); InnerEncryptedEvent encryptedEvent = client.JsonSerializer.Deserialize<InnerEncryptedEvent>(callbackJson);
callbackJson = Utilities.WechatEventDataCryptor.AESDecrypt(cipherText: encryptedEvent.EncryptedData, encodingAESKey: client.Credentials.PushEncodingAESKey!, out _); callbackJson = Utilities.WxMsgCryptor.AESDecrypt(cipherText: encryptedEvent.EncryptedData, encodingAESKey: client.Credentials.PushEncodingAESKey!, out _);
} }
return client.JsonSerializer.Deserialize<TEvent>(callbackJson); return client.JsonSerializer.Deserialize<TEvent>(callbackJson);
@ -68,10 +68,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
{ {
if (callbackXml.Contains("<Encrypt>") && callbackXml.Contains("</Encrypt>")) if (callbackXml.Contains("<Encrypt>") && callbackXml.Contains("</Encrypt>"))
{ {
if (!Utilities.WechatEventDataCryptor.TryParseXml(callbackXml, out string encryptedXml)) if (!Utilities.WxMsgCryptor.TryParseXml(callbackXml, out string encryptedXml))
throw new Exceptions.WechatApiEventSerializationException("Decrypt event failed, because of empty encrypted data."); throw new Exceptions.WechatApiEventSerializationException("Decrypt event failed, because of empty encrypted data.");
callbackXml = Utilities.WechatEventDataCryptor.AESDecrypt(cipherText: encryptedXml, encodingAESKey: client.Credentials.PushEncodingAESKey!, out _); callbackXml = Utilities.WxMsgCryptor.AESDecrypt(cipherText: encryptedXml, encodingAESKey: client.Credentials.PushEncodingAESKey!, out _);
} }
return Utilities.XmlUtility.Deserialize<TEvent>(callbackXml); return Utilities.XmlUtility.Deserialize<TEvent>(callbackXml);
@ -167,12 +167,12 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
{ {
string timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds().ToString(); string timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds().ToString();
string nonce = DateTimeOffset.Now.Ticks.ToString("x"); string nonce = DateTimeOffset.Now.Ticks.ToString("x");
string cipher = Utilities.WechatEventDataCryptor.AESEncrypt( string cipher = Utilities.WxMsgCryptor.AESEncrypt(
plainText: json, plainText: json,
encodingAESKey: client.Credentials.PushEncodingAESKey!, encodingAESKey: client.Credentials.PushEncodingAESKey!,
appId: client.Credentials.AppId appId: client.Credentials.AppId
); );
string sign = Utilities.WechatEventDataCryptor.GenerateSignature( string sign = Utilities.WxMsgCryptor.GenerateSignature(
sToken: client.Credentials.PushToken!, sToken: client.Credentials.PushToken!,
sTimestamp: timestamp, sTimestamp: timestamp,
sNonce: nonce, sNonce: nonce,
@ -227,13 +227,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
try try
{ {
string cipher = Utilities.WechatEventDataCryptor.AESEncrypt( string cipher = Utilities.WxMsgCryptor.AESEncrypt(
plainText: xml, plainText: xml,
encodingAESKey: client.Credentials.PushEncodingAESKey!, encodingAESKey: client.Credentials.PushEncodingAESKey!,
appId: client.Credentials.AppId appId: client.Credentials.AppId
); );
xml = Utilities.WechatEventDataCryptor.WrapXml(sToken: client.Credentials.PushToken!, sMsgEncrypt: cipher); xml = Utilities.WxMsgCryptor.WrapXml(sToken: client.Credentials.PushToken!, sMsgEncrypt: cipher);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -283,7 +283,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
try try
{ {
var encryptedEvent = client.JsonSerializer.Deserialize<InnerEncryptedEvent>(callbackJson); var encryptedEvent = client.JsonSerializer.Deserialize<InnerEncryptedEvent>(callbackJson);
return Utilities.WechatEventDataCryptor.VerifySignature( return Utilities.WxMsgCryptor.VerifySignature(
sToken: client.Credentials.PushToken!, sToken: client.Credentials.PushToken!,
sTimestamp: callbackTimestamp, sTimestamp: callbackTimestamp,
sNonce: callbackNonce, sNonce: callbackNonce,
@ -317,7 +317,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
XDocument xDoc = XDocument.Parse(callbackXml); XDocument xDoc = XDocument.Parse(callbackXml);
string? msgEncrypt = xDoc.Root?.Element("Encrypt")?.Value; string? msgEncrypt = xDoc.Root?.Element("Encrypt")?.Value;
return Utilities.WechatEventDataCryptor.VerifySignature( return Utilities.WxMsgCryptor.VerifySignature(
sToken: client.Credentials.PushToken!, sToken: client.Credentials.PushToken!,
sTimestamp: callbackTimestamp, sTimestamp: callbackTimestamp,
sNonce: callbackNonce, sNonce: callbackNonce,

View File

@ -1,4 +1,4 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
@ -10,7 +10,7 @@ using System.Xml;
namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities
{ {
internal static class WechatEventDataCryptor internal static class WxMsgCryptor
{ {
private const int AES_KEY_SIZE = 256; private const int AES_KEY_SIZE = 256;
private const int AES_BLOCK_SIZE = 128; private const int AES_BLOCK_SIZE = 128;

View File

@ -1,10 +1,10 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Events.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Events
{ {
/// <summary> /// <summary>
/// <para>表示 userEnter 事件的数据。</para> /// <para>表示 userEnter 事件的数据。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/platform/thirdkefu/recivemsg.html </para> /// <para>REF: https://developers.weixin.qq.com/doc/aispeech/platform/thirdkefu/recivemsg.html </para>
/// </summary> /// </summary>
public class UserEnterEvent : WechatOpenAIPlatformEvent, WechatOpenAIPlatformEvent.Serialization.IXmlSerializable public class UserEnterEvent : WechatOpenAIEvent, WechatOpenAIEvent.Serialization.IXmlSerializable
{ {
public static class Types public static class Types
{ {

View File

@ -1,4 +1,4 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Events.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Events
{ {
/// <summary> /// <summary>
/// <para>表示 userQuit 事件的数据。</para> /// <para>表示 userQuit 事件的数据。</para>

View File

@ -1,49 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteApiExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v2/api/get_welcome_msg 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/get_welcomemsg.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.ApiGetWelcomeMessageResponse> ExecuteApiGetWelcomeMessageAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.ApiGetWelcomeMessageRequest 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, "v2", "api", "get_welcome_msg");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.ApiGetWelcomeMessageResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/api/set_welcome_msg 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/set_welcomemsg.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.ApiSetWelcomeMessageResponse> ExecuteApiSetWelcomeMessageAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.ApiSetWelcomeMessageRequest 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, "v2", "api", "set_welcome_msg");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.ApiSetWelcomeMessageResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,32 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteAsyncExtensions
{
/// <summary>
/// <para>异步调用 [GET] /v1/async/fetch 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v1/task_fetch.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.AsyncFetchResponse> ExecuteAsyncFetchAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.AsyncFetchRequest 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, "v1", "async", "fetch")
.SetQueryParam("task_id", request.TaskId);
return await client.SendRequestWithJsonAsync<Models.ThirdParty.AsyncFetchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,220 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteBotExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v2/bot/save 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/save.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.BotSaveResponse> ExecuteBotSaveAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.BotSaveRequest 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, "v2", "bot", "save");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.BotSaveResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /v2/bot/get_detail 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/get_detail.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.BotGetDetailResponse> ExecuteBotGetDetailAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.BotGetDetailRequest 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, "v2", "bot", "get_detail");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.BotGetDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/bot/delete 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/save.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.BotDeleteResponse> ExecuteBotDeleteAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.BotDeleteRequest 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, "v2", "bot", "delete");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.BotDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/bot/get_list 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/get_list.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.BotGetListResponse> ExecuteBotGetListAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.BotGetListRequest 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, "v2", "bot", "get_list");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.BotGetListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v1/bot/import 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/import.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.BotImportResponse> ExecuteBotImportAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.BotImportRequest 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, "v1", "bot", "import");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.BotImportResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /v1/bot/export 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/export.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.BotExportResponse> ExecuteBotExportAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.BotExportRequest 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, "v1", "bot", "export");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.BotExportResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/bot/publish 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/publish.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.BotPublishResponse> ExecuteBotPublishAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.BotPublishRequest 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, "v2", "bot", "publish");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.BotPublishResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/bot/publish/get_record 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/get_publish_record.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.BotPublishGetRecordResponse> ExecuteBotPublishGetRecordAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.BotPublishGetRecordRequest 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, "v2", "bot", "publish", "get_record");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.BotPublishGetRecordResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v1/bot/import/json 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/json_import.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.BotImportJsonResponse> ExecuteBotImportJsonAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.BotImportJsonRequest 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, "v1", "bot", "import", "json");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.BotImportJsonResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /v1/bot/test 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/test.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.BotTestResponse> ExecuteBotTestAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.BotTestRequest 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, "v1", "bot", "test");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.BotTestResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/bot/effective_progress 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/effective_progress.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.BotEffectiveProgressResponse> ExecuteBotEffectiveProgressAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.BotEffectiveProgressRequest 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, "v2", "bot", "effective_progress");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.BotEffectiveProgressResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,106 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteDictionaryExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v2/dict/save 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/dict/save.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.DictionarySaveResponse> ExecuteDictionarySaveAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.DictionarySaveRequest 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, "v2", "dict", "save");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.DictionarySaveResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/dict/get_list 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/dict/get_list.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.DictionaryGetListResponse> ExecuteDictionaryGetListAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.DictionaryGetListRequest 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, "v2", "dict", "get_list");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.DictionaryGetListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /v2/dict/get_builtin_list 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/dict/get_builtin_list.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.DictionaryGetBuiltinListResponse> ExecuteDictionaryGetBuiltinListAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.DictionaryGetBuiltinListRequest 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, "v2", "dict", "get_builtin_list");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.DictionaryGetBuiltinListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/dict/get_all_list 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/dict/get_all_list.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.DictionaryGetAllListResponse> ExecuteDictionaryGetAllListAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.DictionaryGetAllListRequest 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, "v2", "dict", "get_all_list");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.DictionaryGetAllListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/dict/delete 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/dict/delete.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.DictionaryDeleteResponse> ExecuteDictionaryDeleteAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.DictionaryDeleteRequest 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, "v2", "dict", "delete");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.DictionaryDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,44 +0,0 @@
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteFileExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v1/file/upload 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v1/file_upload.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.FileUploadResponse> ExecuteFileUploadAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.FileUploadRequest 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";
if (request.FileContentType == null)
request.FileContentType = "text/csv";
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "v1", "file", "upload");
using var fileContent = new ByteArrayContent(request.FileBytes ?? Array.Empty<byte>());
using var httpContent = new MultipartFormDataContent();
httpContent.Add(fileContent, "\"file\"", $"\"{HttpUtility.UrlEncode(request.FileName)}\"");
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(request.FileContentType);
fileContent.Headers.ContentLength = request.FileBytes?.Length;
return await client.SendRequestAsync<Models.ThirdParty.FileUploadResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,206 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteIntentExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v2/intent/save 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/intent/batch_save.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.IntentSaveResponse> ExecuteIntentSaveAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.IntentSaveRequest 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, "v2", "intent", "save");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.IntentSaveResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/intent/search 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/intent/search .html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.IntentSearchResponse> ExecuteIntentSearchAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.IntentSearchRequest 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, "v2", "intent", "search");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.IntentSearchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/intent/get_detail 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/intent/get_detail .html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.IntentGetDetailResponse> ExecuteIntentGetDetailAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.IntentGetDetailRequest 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, "v2", "intent", "get_detail");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.IntentGetDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/intent/name_exist 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/intent/name_exist .html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.IntentNameExistResponse> ExecuteIntentNameExistAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.IntentNameExistRequest 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, "v2", "intent", "name_exist");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.IntentNameExistResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/intent/delete 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/intent/batch_delete.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.IntentDeleteResponse> ExecuteIntentDeleteAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.IntentDeleteRequest 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, "v2", "intent", "delete");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.IntentDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v1/intent/switch/batch 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/intent/batch_delete.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.IntentSwitchBatchResponse> ExecuteIntentSwitchBatchAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.IntentSwitchBatchRequest 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, "v1", "intent", "switch", "batch");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.IntentSwitchBatchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#region Config
/// <summary>
/// <para>异步调用 [POST] /v2/intent/config/save 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/intent/save_config.html </para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/intent/save_config_normal_answer_config.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.IntentConfigSaveResponse> ExecuteIntentConfigSaveAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.IntentConfigSaveRequest 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, "v2", "intent", "config", "save");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.IntentConfigSaveResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/intent/config/get 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/intent/get_config.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.IntentConfigGetResponse> ExecuteIntentConfigGetAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.IntentConfigGetRequest 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, "v2", "intent", "config", "get");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.IntentConfigGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region Question
/// <summary>
/// <para>异步调用 [POST] /v2/intent/question/save 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/intent/batch_save_question.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.IntentQuestionSaveResponse> ExecuteIntentQuestionSaveAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.IntentQuestionSaveRequest 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, "v2", "intent", "question", "save");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.IntentQuestionSaveResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/intent/question/delete 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/intent/batch_delete_question.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.IntentQuestionDeleteResponse> ExecuteIntentQuestionDeleteAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.IntentQuestionDeleteRequest 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, "v2", "intent", "question", "delete");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.IntentQuestionDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
}
}

View File

@ -1,68 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteOpenApiExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v1/openapi/create 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v1/openapi/create.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.OpenApiCreateResponse> ExecuteOpenApiCreateAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.OpenApiCreateRequest 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, "v1", "openapi", "create");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.OpenApiCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v1/openapi/reset 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v1/openapi/reset.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.OpenApiResetResponse> ExecuteOpenApiResetAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.OpenApiResetRequest 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, "v1", "openapi", "reset");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.OpenApiResetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /v1/openapi/get_detail 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v1/openapi/get_detail.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.OpenApiGetDetailResponse> ExecuteOpenApiGetDetailAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.OpenApiGetDetailRequest 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, "v1", "openapi", "get_detail");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.OpenApiGetDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,87 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteSkillExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v2/skill/save 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/skill/save.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.SkillSaveResponse> ExecuteSkillSaveAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.SkillSaveRequest 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, "v2", "skill", "save");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.SkillSaveResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/skill/get_list 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/skill/get_list.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.SkillGetListResponse> ExecuteSkillGetListAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.SkillGetListRequest 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, "v2", "skill", "get_list");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.SkillGetListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/skill/get_detail 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/skill/get_detail.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.SkillGetDetailResponse> ExecuteSkillGetDetailAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.SkillGetDetailRequest 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, "v2", "skill", "get_detail");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.SkillGetDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/skill/delete 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/skill/delete.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.SkillDeleteResponse> ExecuteSkillDeleteAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.SkillDeleteRequest 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, "v2", "skill", "delete");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.SkillDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,87 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteSkillStoreExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v2/skill_store/get_list 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/skill_store/get_store_skill_list.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.SkillStoreGetListResponse> ExecuteSkillStoreGetListAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.SkillStoreGetListRequest 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, "v2", "skill_store", "get_list");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.SkillStoreGetListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/skill_store/bot_acquire_state/update 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/skill_store/update_bot_acquire_state.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.SkillStoreBotAcquireStateUpdateResponse> ExecuteSkillStoreBotAcquireStateUpdateAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.SkillStoreBotAcquireStateUpdateRequest 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, "v2", "skill_store", "bot_acquire_state", "update");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.SkillStoreBotAcquireStateUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/skill_store/bot_switch_state/update 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/skill_store/batch_update_state.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.SkillStoreBotSwitchStateUpdateResponse> ExecuteSkillStoreBotSwitchStateUpdateAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.SkillStoreBotSwitchStateUpdateRequest 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, "v2", "skill_store", "bot_switch_state", "update");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.SkillStoreBotSwitchStateUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/skill_store/builtin_skill_switch/update 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/skill_store/update_builtin_skill_switch.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.SkillStoreBuiltinSkillSwitchUpdateResponse> ExecuteSkillStoreBuiltinSkillSwitchUpdateAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.SkillStoreBuiltinSkillSwitchUpdateRequest 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, "v2", "skill_store", "builtin_skill_switch", "update");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.SkillStoreBuiltinSkillSwitchUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,68 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteSlotExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v2/slot/save 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/slot/save.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.SlotSaveResponse> ExecuteSlotSaveAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.SlotSaveRequest 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, "v2", "slot", "save");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.SlotSaveResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/slot/get_list 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/slot/get_list.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.SlotGetListResponse> ExecuteSlotGetListAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.SlotGetListRequest 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, "v2", "slot", "get_list");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.SlotGetListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/slot/delete 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/slot/delete.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.SlotDeleteResponse> ExecuteSlotDeleteAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.SlotDeleteRequest 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, "v2", "slot", "delete");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.SlotDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,49 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteStatisticsExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v2/dialog_user_specified_date 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/statistic/dialog_user_specified_date.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.DialogUserSpecifiedDateResponse> ExecuteDialogUserSpecifiedDateAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.DialogUserSpecifiedDateRequest 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, "v2", "dialog_user_specified_date");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.DialogUserSpecifiedDateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/user_query_yesterday_data 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/statistic/user_query_yesterday_data.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.UserQueryYesterdayDataResponse> ExecuteUserQueryYesterdayDataAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.UserQueryYesterdayDataRequest 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, "v2", "user_query_yesterday_data");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.UserQueryYesterdayDataResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,32 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteTokenExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v1/token 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v1/get_token.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.TokenResponse> ExecuteTokenAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.TokenRequest 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, "v1", "token")
.WithHeader("Client-Id", client.Credentials.ClientId)
.WithHeader("Client-Key", client.Credentials.ClientKey);
return await client.SendRequestWithJsonAsync<Models.ThirdParty.TokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,49 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteUnmatchedClassExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v1/unmatched/class/list 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/unmatched_class_list.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.UnmatchedClassListResponse> ExecuteUnmatchedClassListAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.UnmatchedClassListRequest 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, "v1", "unmatched", "class", "list");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.UnmatchedClassListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v1/unmatched/class/detail 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/unmatched_class_detail.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.UnmatchedClassDetailResponse> ExecuteUnmatchedClassDetailAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.UnmatchedClassDetailRequest 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, "v1", "unmatched", "class", "detail");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.UnmatchedClassDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,32 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteUserExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v1/user/register 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v1/user_register.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.UserRegisterResponse> ExecuteUserRegisterAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.UserRegisterRequest 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, "v1", "user", "register")
.WithHeader("Client-Id", client.Credentials.ClientId)
.WithHeader("Client-Key", client.Credentials.ClientKey);
return await client.SendRequestWithJsonAsync<Models.ThirdParty.UserRegisterResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -1,106 +0,0 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{
public static class WechatOpenAIThirdPartyClientExecuteWordExtensions
{
/// <summary>
/// <para>异步调用 [POST] /v2/word/update/batch 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v1/word/batch_update.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.WordUpdateBatchResponse> ExecuteWordUpdateBatchAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.WordUpdateBatchRequest 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, "v2", "word", "update", "batch");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.WordUpdateBatchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/word/delete/batch 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v1/word/batch_delete.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.WordDeleteBatchResponse> ExecuteWordDeleteBatchAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.WordDeleteBatchRequest 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, "v2", "word", "delete", "batch");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.WordDeleteBatchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/word/import 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/word/import.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.WordImportResponse> ExecuteWordImportAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.WordImportRequest 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, "v2", "word", "import");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.WordImportResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/word/import/json 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/word/json_import.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.WordImportJsonResponse> ExecuteWordImportJsonAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.WordImportJsonRequest 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, "v2", "word", "import", "json");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.WordImportJsonResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /v2/word/export 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/word/export.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ThirdParty.WordExportResponse> ExecuteWordExportAsync(this WechatOpenAIThirdPartyClient client, Models.ThirdParty.WordExportRequest 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, "v2", "word", "export");
return await client.SendRequestWithJsonAsync<Models.ThirdParty.WordExportResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -3,22 +3,22 @@ using System;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{ {
/// <summary> /// <summary>
/// 为 <see cref="WechatOpenAIPlatformClient"/> 提供回调通知事件的扩展方法。 /// 为 <see cref="WechatOpenAIClient"/> 提供回调通知事件的扩展方法。
/// </summary> /// </summary>
public static class WechatOpenAIPlatformClientEventExtensions public static class WechatOpenAIClientEventExtensions
{ {
private static TEvent InnerDeserializeEventFromXml<TEvent>(this WechatOpenAIPlatformClient client, string callbackXml) private static TEvent InnerDeserializeEventFromXml<TEvent>(this WechatOpenAIClient client, string callbackXml)
where TEvent : WechatOpenAIPlatformEvent where TEvent : WechatOpenAIEvent
{ {
if (client == null) throw new ArgumentNullException(nameof(client)); if (client == null) throw new ArgumentNullException(nameof(client));
if (string.IsNullOrEmpty(callbackXml)) throw new ArgumentNullException(callbackXml); if (string.IsNullOrEmpty(callbackXml)) throw new ArgumentNullException(callbackXml);
try try
{ {
if (!Utilities.WechatEventDataCryptor.TryParseXml(callbackXml, out string? encryptedXml)) if (!Utilities.WxMsgCryptor.TryParseXml(callbackXml, out string? encryptedXml))
throw new Exceptions.WechatOpenAIEventSerializationException("Encrypt event failed, because of empty encrypted data."); throw new Exceptions.WechatOpenAIEventSerializationException("Encrypt event failed, because of empty encrypted data.");
callbackXml = Utilities.WechatEventDataCryptor.AESDecrypt(cipherText: encryptedXml!, encodingAESKey: client.Credentials.EncodingAESKey!, out _); callbackXml = Utilities.WxMsgCryptor.AESDecrypt(cipherText: encryptedXml!, encodingAESKey: client.Credentials.EncodingAESKey!, out _);
return Utilities.XmlUtility.Deserialize<TEvent>(callbackXml); return Utilities.XmlUtility.Deserialize<TEvent>(callbackXml);
} }
catch (WechatOpenAIException) catch (WechatOpenAIException)
@ -32,38 +32,38 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
} }
/// <summary> /// <summary>
/// <para>从 XML 反序列化得到 <see cref="WechatOpenAIPlatformEvent"/> 对象。</para> /// <para>从 XML 反序列化得到 <see cref="WechatOpenAIEvent"/> 对象。</para>
/// </summary> /// </summary>
/// <typeparam name="TEvent"></typeparam> /// <typeparam name="TEvent"></typeparam>
/// <param name="client"></param> /// <param name="client"></param>
/// <param name="callbackXml"></param> /// <param name="callbackXml"></param>
/// <returns></returns> /// <returns></returns>
public static TEvent DeserializeEventFromXml<TEvent>(this WechatOpenAIPlatformClient client, string callbackXml) public static TEvent DeserializeEventFromXml<TEvent>(this WechatOpenAIClient client, string callbackXml)
where TEvent : WechatOpenAIPlatformEvent, WechatOpenAIPlatformEvent.Serialization.IXmlSerializable, new() where TEvent : WechatOpenAIEvent, WechatOpenAIEvent.Serialization.IXmlSerializable, new()
{ {
return InnerDeserializeEventFromXml<TEvent>(client, callbackXml); return InnerDeserializeEventFromXml<TEvent>(client, callbackXml);
} }
/// <summary> /// <summary>
/// <para>从 XML 反序列化得到 <see cref="WechatOpenAIPlatformEvent"/> 对象。</para> /// <para>从 XML 反序列化得到 <see cref="WechatOpenAIEvent"/> 对象。</para>
/// </summary> /// </summary>
/// <param name="client"></param> /// <param name="client"></param>
/// <param name="callbackXml"></param> /// <param name="callbackXml"></param>
/// <returns></returns> /// <returns></returns>
public static WechatOpenAIPlatformEvent DeserializeEventFromXml(this WechatOpenAIPlatformClient client, string callbackXml) public static WechatOpenAIEvent DeserializeEventFromXml(this WechatOpenAIClient client, string callbackXml)
{ {
return InnerDeserializeEventFromXml<WechatOpenAIPlatformEvent>(client, callbackXml); return InnerDeserializeEventFromXml<WechatOpenAIEvent>(client, callbackXml);
} }
/// <summary> /// <summary>
/// 将 <see cref="WechatOpenAIPlatformEvent"/> 对象序列化成 XML。 /// 将 <see cref="WechatOpenAIEvent"/> 对象序列化成 XML。
/// </summary> /// </summary>
/// <typeparam name="TEvent"></typeparam> /// <typeparam name="TEvent"></typeparam>
/// <param name="client"></param> /// <param name="client"></param>
/// <param name="callbackModel"></param> /// <param name="callbackModel"></param>
/// <returns></returns> /// <returns></returns>
public static string SerializeEventToXml<TEvent>(this WechatOpenAIPlatformClient client, TEvent callbackModel) public static string SerializeEventToXml<TEvent>(this WechatOpenAIClient client, TEvent callbackModel)
where TEvent : WechatOpenAIPlatformEvent, WechatOpenAIPlatformEvent.Serialization.IXmlSerializable, new() where TEvent : WechatOpenAIEvent, WechatOpenAIEvent.Serialization.IXmlSerializable, new()
{ {
string xml; string xml;
@ -83,13 +83,13 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
try try
{ {
string cipher = Utilities.WechatEventDataCryptor.AESEncrypt( string cipher = Utilities.WxMsgCryptor.AESEncrypt(
plainText: xml, plainText: xml,
encodingAESKey: client.Credentials.EncodingAESKey!, encodingAESKey: client.Credentials.EncodingAESKey!,
appId: client.Credentials.AppId! appId: client.Credentials.AppId!
); );
xml = Utilities.WechatEventDataCryptor.WrapXml(sToken: client.Credentials.Token!, sMsgEncrypt: cipher); xml = Utilities.WxMsgCryptor.WrapXml(sToken: client.Credentials.Token!, sMsgEncrypt: cipher);
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -1,4 +1,4 @@
using System; using System;
using System.Net.Http; using System.Net.Http;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -6,7 +6,7 @@ using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{ {
public static class WechatOpenAIPlatformClientExecuteBotExtensions public static class WechatOpenAIClientExecuteBotExtensions
{ {
/// <summary> /// <summary>
/// <para>异步调用 [POST] /batchimportskill/{TOKEN} 接口。</para> /// <para>异步调用 [POST] /batchimportskill/{TOKEN} 接口。</para>
@ -16,7 +16,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.BatchImportSkillResponse> ExecuteBatchImportSkillAsync(this WechatOpenAIPlatformClient client, Models.Platform.BatchImportSkillRequest request, CancellationToken cancellationToken = default) public static async Task<Models.BatchImportSkillResponse> ExecuteBatchImportSkillAsync(this WechatOpenAIClient client, Models.BatchImportSkillRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -24,7 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "batchimportskill", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "batchimportskill", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.BatchImportSkillResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.BatchImportSkillResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -35,7 +35,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.PublishResponse> ExecutePublishAsync(this WechatOpenAIPlatformClient client, Models.Platform.PublishRequest request, CancellationToken cancellationToken = default) public static async Task<Models.PublishResponse> ExecutePublishAsync(this WechatOpenAIClient client, Models.PublishRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -43,7 +43,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "publish", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "publish", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.PublishResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.PublishResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -54,7 +54,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.PublishProgressResponse> ExecutePublishProgressAsync(this WechatOpenAIPlatformClient client, Models.Platform.PublishProgressRequest request, CancellationToken cancellationToken = default) public static async Task<Models.PublishProgressResponse> ExecutePublishProgressAsync(this WechatOpenAIClient client, Models.PublishProgressRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -62,7 +62,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "publish_progress", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "publish_progress", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.PublishProgressResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.PublishProgressResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -74,7 +74,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.SetAutoReplyResponse> ExecuteSetAutoReplyAsync(this WechatOpenAIPlatformClient client, Models.Platform.SetAutoReplyRequest request, CancellationToken cancellationToken = default) public static async Task<Models.SetAutoReplyResponse> ExecuteSetAutoReplyAsync(this WechatOpenAIClient client, Models.SetAutoReplyRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -82,7 +82,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "setautoreply", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "setautoreply", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.SetAutoReplyResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.SetAutoReplyResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -93,7 +93,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.LabelBatchSetResponse> ExecuteLabelBatchSetAsync(this WechatOpenAIPlatformClient client, Models.Platform.LabelBatchSetRequest request, CancellationToken cancellationToken = default) public static async Task<Models.LabelBatchSetResponse> ExecuteLabelBatchSetAsync(this WechatOpenAIClient client, Models.LabelBatchSetRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -101,7 +101,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "label", "batchset", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "label", "batchset", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.LabelBatchSetResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.LabelBatchSetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
} }
} }

View File

@ -6,7 +6,7 @@ using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{ {
public static class WechatOpenAIPlatformClientExecuteDialogExtensions public static class WechatOpenAIClientExecuteDialogExtensions
{ {
/// <summary> /// <summary>
/// <para>异步调用 [POST] /sign/{TOKEN} 接口。</para> /// <para>异步调用 [POST] /sign/{TOKEN} 接口。</para>
@ -16,7 +16,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.SignResponse> ExecuteSignAsync(this WechatOpenAIPlatformClient client, Models.Platform.SignRequest request, CancellationToken cancellationToken = default) public static async Task<Models.SignResponse> ExecuteSignAsync(this WechatOpenAIClient client, Models.SignRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -24,7 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "sign", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "sign", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.SignResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.SignResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -35,7 +35,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.AIBotResponse> ExecuteAIBotAsync(this WechatOpenAIPlatformClient client, Models.Platform.AIBotRequest request, CancellationToken cancellationToken = default) public static async Task<Models.AIBotResponse> ExecuteAIBotAsync(this WechatOpenAIClient client, Models.AIBotRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -43,7 +43,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "aibot", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "aibot", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.AIBotResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.AIBotResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -54,7 +54,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.GetHotQueryListResponse> ExecuteGetHotQueryListAsync(this WechatOpenAIPlatformClient client, Models.Platform.GetHotQueryListRequest request, CancellationToken cancellationToken = default) public static async Task<Models.GetHotQueryListResponse> ExecuteGetHotQueryListAsync(this WechatOpenAIClient client, Models.GetHotQueryListRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -62,7 +62,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "gethotquerylist", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "gethotquerylist", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.GetHotQueryListResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.GetHotQueryListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
} }
} }

View File

@ -6,7 +6,7 @@ using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{ {
public static class WechatOpenAIPlatformClientExecuteLivingExtensions public static class WechatOpenAIClientExecuteLivingExtensions
{ {
/// <summary> /// <summary>
/// <para>异步调用 [POST] /batchreply/{TOKEN} 接口。</para> /// <para>异步调用 [POST] /batchreply/{TOKEN} 接口。</para>
@ -16,7 +16,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.BatchReplyResponse> ExecuteBatchReplyAsync(this WechatOpenAIPlatformClient client, Models.Platform.BatchReplyRequest request, CancellationToken cancellationToken = default) public static async Task<Models.BatchReplyResponse> ExecuteBatchReplyAsync(this WechatOpenAIClient client, Models.BatchReplyRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -24,7 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "batchreply", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "batchreply", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.BatchReplyResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.BatchReplyResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -35,7 +35,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.GenerateReportResponse> ExecuteGenerateReportAsync(this WechatOpenAIPlatformClient client, Models.Platform.GenerateReportRequest request, CancellationToken cancellationToken = default) public static async Task<Models.GenerateReportResponse> ExecuteGenerateReportAsync(this WechatOpenAIClient client, Models.GenerateReportRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -43,7 +43,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "generatereport", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "generatereport", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.GenerateReportResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.GenerateReportResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
} }
} }

View File

@ -9,7 +9,7 @@ using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{ {
public static class WechatOpenAIPlatformClientExecuteMpExtensions public static class WechatOpenAIClientExecuteMpExtensions
{ {
/// <summary> /// <summary>
/// <para>异步调用 [POST] /getbindlink/{TOKEN} 接口。</para> /// <para>异步调用 [POST] /getbindlink/{TOKEN} 接口。</para>
@ -19,7 +19,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.GetBindLinkResponse> ExecuteGetBindLinkAsync(this WechatOpenAIPlatformClient client, Models.Platform.GetBindLinkRequest request, CancellationToken cancellationToken = default) public static async Task<Models.GetBindLinkResponse> ExecuteGetBindLinkAsync(this WechatOpenAIClient client, Models.GetBindLinkRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -27,7 +27,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "getbindlink", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "getbindlink", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.GetBindLinkResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.GetBindLinkResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -38,7 +38,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.GetBindListResponse> ExecuteGetBindListAsync(this WechatOpenAIPlatformClient client, Models.Platform.GetBindListRequest request, CancellationToken cancellationToken = default) public static async Task<Models.GetBindListResponse> ExecuteGetBindListAsync(this WechatOpenAIClient client, Models.GetBindListRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -46,7 +46,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "getbindlist", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "getbindlist", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.GetBindListResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.GetBindListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -57,7 +57,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.UnbindMpResponse> ExecuteUnbindMpAsync(this WechatOpenAIPlatformClient client, Models.Platform.UnbindMpRequest request, CancellationToken cancellationToken = default) public static async Task<Models.UnbindMpResponse> ExecuteUnbindMpAsync(this WechatOpenAIClient client, Models.UnbindMpRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -65,7 +65,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "unbindmp", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "unbindmp", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.UnbindMpResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.UnbindMpResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -76,7 +76,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.GetH5LinkResponse> ExecuteGetH5LinkAsync(this WechatOpenAIPlatformClient client, Models.Platform.GetH5LinkRequest request, CancellationToken cancellationToken = default) public static async Task<Models.GetH5LinkResponse> ExecuteGetH5LinkAsync(this WechatOpenAIClient client, Models.GetH5LinkRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -84,7 +84,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "geth5link", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "geth5link", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.GetH5LinkResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.GetH5LinkResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
@ -96,7 +96,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.AssetsUploadResponse> ExecuteAssetsUploadAsync(this WechatOpenAIPlatformClient client, Models.Platform.AssetsUploadRequest request, CancellationToken cancellationToken = default) public static async Task<Models.AssetsUploadResponse> ExecuteAssetsUploadAsync(this WechatOpenAIClient client, Models.AssetsUploadRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -112,7 +112,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
using var fileContent = new ByteArrayContent(request.FileBytes ?? Array.Empty<byte>()); using var fileContent = new ByteArrayContent(request.FileBytes ?? Array.Empty<byte>());
using var paramContent = new StringContent( using var paramContent = new StringContent(
Utilities.WechatEventDataCryptor.AESEncrypt( Utilities.WxMsgCryptor.AESEncrypt(
plainText: Utilities.XmlUtility.Serialize(request), plainText: Utilities.XmlUtility.Serialize(request),
encodingAESKey: client.Credentials.EncodingAESKey!, encodingAESKey: client.Credentials.EncodingAESKey!,
appId: client.Credentials.AppId! appId: client.Credentials.AppId!
@ -125,7 +125,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(request.FileContentType); fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(request.FileContentType);
fileContent.Headers.ContentLength = request.FileBytes?.Length; fileContent.Headers.ContentLength = request.FileBytes?.Length;
return await client.SendRequestAsync<Models.Platform.AssetsUploadResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken); return await client.SendRequestAsync<Models.AssetsUploadResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken);
} }
} }
} }

View File

@ -6,7 +6,7 @@ using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{ {
public static class WechatOpenAIPlatformClientExecuteNLPExtensions public static class WechatOpenAIClientExecuteNLPExtensions
{ {
/// <summary> /// <summary>
/// <para>异步调用 [POST] /nlp/tokenize/{TOKEN} 接口。</para> /// <para>异步调用 [POST] /nlp/tokenize/{TOKEN} 接口。</para>
@ -16,7 +16,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.NLPTokenizeResponse> ExecuteNLPTokenizeAsync(this WechatOpenAIPlatformClient client, Models.Platform.NLPTokenizeRequest request, CancellationToken cancellationToken = default) public static async Task<Models.NLPTokenizeResponse> ExecuteNLPTokenizeAsync(this WechatOpenAIClient client, Models.NLPTokenizeRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -24,7 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "nlp", "tokenize", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "nlp", "tokenize", client.Credentials.Token!);
return await client.SendRequestWithUrlEncodedAsync<Models.Platform.NLPTokenizeResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithUrlEncodedAsync<Models.NLPTokenizeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -35,7 +35,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.NLPNERResponse> ExecuteNLPNERAsync(this WechatOpenAIPlatformClient client, Models.Platform.NLPNERRequest request, CancellationToken cancellationToken = default) public static async Task<Models.NLPNERResponse> ExecuteNLPNERAsync(this WechatOpenAIClient client, Models.NLPNERRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -43,7 +43,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "nlp", "ner", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "nlp", "ner", client.Credentials.Token!);
return await client.SendRequestWithUrlEncodedAsync<Models.Platform.NLPNERResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithUrlEncodedAsync<Models.NLPNERResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -54,7 +54,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.NLPSentimentResponse> ExecuteNLPSentimentAsync(this WechatOpenAIPlatformClient client, Models.Platform.NLPSentimentRequest request, CancellationToken cancellationToken = default) public static async Task<Models.NLPSentimentResponse> ExecuteNLPSentimentAsync(this WechatOpenAIClient client, Models.NLPSentimentRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -62,7 +62,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "nlp", "sentiment", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "nlp", "sentiment", client.Credentials.Token!);
return await client.SendRequestWithUrlEncodedAsync<Models.Platform.NLPSentimentResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithUrlEncodedAsync<Models.NLPSentimentResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -73,7 +73,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.NLPNERProductResponse> ExecuteNLPNERProductAsync(this WechatOpenAIPlatformClient client, Models.Platform.NLPNERProductRequest request, CancellationToken cancellationToken = default) public static async Task<Models.NLPNERProductResponse> ExecuteNLPNERProductAsync(this WechatOpenAIClient client, Models.NLPNERProductRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -81,7 +81,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "nlp", "ner-product", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "nlp", "ner-product", client.Credentials.Token!);
return await client.SendRequestWithUrlEncodedAsync<Models.Platform.NLPNERProductResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithUrlEncodedAsync<Models.NLPNERProductResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -92,7 +92,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.NLPSensitiveResponse> ExecuteNLPSensitiveAsync(this WechatOpenAIPlatformClient client, Models.Platform.NLPSensitiveRequest request, CancellationToken cancellationToken = default) public static async Task<Models.NLPSensitiveResponse> ExecuteNLPSensitiveAsync(this WechatOpenAIClient client, Models.NLPSensitiveRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -100,7 +100,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "nlp", "sensitive", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "nlp", "sensitive", client.Credentials.Token!);
return await client.SendRequestWithUrlEncodedAsync<Models.Platform.NLPSensitiveResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithUrlEncodedAsync<Models.NLPSensitiveResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -111,7 +111,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.NLPRankResponse> ExecuteNLPRankAsync(this WechatOpenAIPlatformClient client, Models.Platform.NLPRankRequest request, CancellationToken cancellationToken = default) public static async Task<Models.NLPRankResponse> ExecuteNLPRankAsync(this WechatOpenAIClient client, Models.NLPRankRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -119,7 +119,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "nlp", "rank", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "nlp", "rank", client.Credentials.Token!);
return await client.SendRequestWithUrlEncodedAsync<Models.Platform.NLPRankResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithUrlEncodedAsync<Models.NLPRankResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -130,7 +130,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.NLPTranslateEnglish2ChineseResponse> ExecuteNLPTranslateEnglish2ChineseAsync(this WechatOpenAIPlatformClient client, Models.Platform.NLPTranslateEnglish2ChineseRequest request, CancellationToken cancellationToken = default) public static async Task<Models.NLPTranslateEnglish2ChineseResponse> ExecuteNLPTranslateEnglish2ChineseAsync(this WechatOpenAIClient client, Models.NLPTranslateEnglish2ChineseRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -138,7 +138,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "nlp", "translate_en2cn", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "nlp", "translate_en2cn", client.Credentials.Token!);
return await client.SendRequestWithUrlEncodedAsync<Models.Platform.NLPTranslateEnglish2ChineseResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithUrlEncodedAsync<Models.NLPTranslateEnglish2ChineseResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -149,7 +149,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.NLPTranslateChinese2EnglishResponse> ExecuteNLPTranslateChinese2EnglishAsync(this WechatOpenAIPlatformClient client, Models.Platform.NLPTranslateChinese2EnglishRequest request, CancellationToken cancellationToken = default) public static async Task<Models.NLPTranslateChinese2EnglishResponse> ExecuteNLPTranslateChinese2EnglishAsync(this WechatOpenAIClient client, Models.NLPTranslateChinese2EnglishRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -157,7 +157,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "nlp", "translate_cn2en", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "nlp", "translate_cn2en", client.Credentials.Token!);
return await client.SendRequestWithUrlEncodedAsync<Models.Platform.NLPTranslateChinese2EnglishResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithUrlEncodedAsync<Models.NLPTranslateChinese2EnglishResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -168,7 +168,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.NLPGetSimilarQueryResponse> ExecuteNLPGetSimilarQueryAsync(this WechatOpenAIPlatformClient client, Models.Platform.NLPGetSimilarQueryRequest request, CancellationToken cancellationToken = default) public static async Task<Models.NLPGetSimilarQueryResponse> ExecuteNLPGetSimilarQueryAsync(this WechatOpenAIClient client, Models.NLPGetSimilarQueryRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -176,7 +176,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "nlp", "get_similar_query", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "nlp", "get_similar_query", client.Credentials.Token!);
return await client.SendRequestWithUrlEncodedAsync<Models.Platform.NLPGetSimilarQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithUrlEncodedAsync<Models.NLPGetSimilarQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -187,7 +187,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.NLPNewsAbstractionResponse> ExecuteNLPNewsAbstractionAsync(this WechatOpenAIPlatformClient client, Models.Platform.NLPNewsAbstractionRequest request, CancellationToken cancellationToken = default) public static async Task<Models.NLPNewsAbstractionResponse> ExecuteNLPNewsAbstractionAsync(this WechatOpenAIClient client, Models.NLPNewsAbstractionRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -195,7 +195,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "nlp", "news-abstraction", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "nlp", "news-abstraction", client.Credentials.Token!);
return await client.SendRequestWithUrlEncodedAsync<Models.Platform.NLPNewsAbstractionResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithUrlEncodedAsync<Models.NLPNewsAbstractionResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -206,7 +206,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.NLPDocumentClassifyResponse> ExecuteNLPDocumentClassifyAsync(this WechatOpenAIPlatformClient client, Models.Platform.NLPDocumentClassifyRequest request, CancellationToken cancellationToken = default) public static async Task<Models.NLPDocumentClassifyResponse> ExecuteNLPDocumentClassifyAsync(this WechatOpenAIClient client, Models.NLPDocumentClassifyRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -214,7 +214,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "nlp", "document_classify", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "nlp", "document_classify", client.Credentials.Token!);
return await client.SendRequestWithUrlEncodedAsync<Models.Platform.NLPDocumentClassifyResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithUrlEncodedAsync<Models.NLPDocumentClassifyResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -225,7 +225,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.NLPRecommendQuestionsResponse> ExecuteNLPRecommendQuestionsAsync(this WechatOpenAIPlatformClient client, Models.Platform.NLPRecommendQuestionsRequest request, CancellationToken cancellationToken = default) public static async Task<Models.NLPRecommendQuestionsResponse> ExecuteNLPRecommendQuestionsAsync(this WechatOpenAIClient client, Models.NLPRecommendQuestionsRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -233,7 +233,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "nlp", "recommend_questions", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "nlp", "recommend_questions", client.Credentials.Token!);
return await client.SendRequestWithUrlEncodedAsync<Models.Platform.NLPRecommendQuestionsResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithUrlEncodedAsync<Models.NLPRecommendQuestionsResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
} }
} }

View File

@ -1,4 +1,4 @@
using System; using System;
using System.Net.Http; using System.Net.Http;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -6,7 +6,7 @@ using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{ {
public static class WechatOpenAIPlatformClientExecuteThirdKefuExtensions public static class WechatOpenAIClientExecuteThirdKefuExtensions
{ {
/// <summary> /// <summary>
/// <para>异步调用 [POST] /sendmsg/{TOKEN} 接口。</para> /// <para>异步调用 [POST] /sendmsg/{TOKEN} 接口。</para>
@ -17,7 +17,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.SendMessageResponse> ExecuteSendMessageAsync(this WechatOpenAIPlatformClient client, Models.Platform.SendMessageRequest request, CancellationToken cancellationToken = default) public static async Task<Models.SendMessageResponse> ExecuteSendMessageAsync(this WechatOpenAIClient client, Models.SendMessageRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -28,7 +28,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "sendmsg", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "sendmsg", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.SendMessageResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.SendMessageResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -39,7 +39,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.KefuStateGetResponse> ExecuteKefuStateGetAsync(this WechatOpenAIPlatformClient client, Models.Platform.KefuStateGetRequest request, CancellationToken cancellationToken = default) public static async Task<Models.KefuStateGetResponse> ExecuteKefuStateGetAsync(this WechatOpenAIClient client, Models.KefuStateGetRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -50,7 +50,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "kefustate", "get", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "kefustate", "get", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.KefuStateGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.KefuStateGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
/// <summary> /// <summary>
@ -61,7 +61,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <param name="request"></param> /// <param name="request"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public static async Task<Models.Platform.KefuStateChangeResponse> ExecuteKefuStateChangeAsync(this WechatOpenAIPlatformClient client, Models.Platform.KefuStateChangeRequest request, CancellationToken cancellationToken = default) public static async Task<Models.KefuStateChangeResponse> ExecuteKefuStateChangeAsync(this WechatOpenAIClient client, Models.KefuStateChangeRequest request, CancellationToken cancellationToken = default)
{ {
if (client is null) throw new ArgumentNullException(nameof(client)); if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request)); if (request is null) throw new ArgumentNullException(nameof(request));
@ -72,7 +72,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
IFlurlRequest flurlReq = client IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "kefustate", "change", client.Credentials.Token!); .CreateRequest(request, HttpMethod.Post, "kefustate", "change", client.Credentials.Token!);
return await client.SendRequestWithJsonAsync<Models.Platform.KefuStateChangeResponse>(flurlReq, data: request, cancellationToken: cancellationToken); return await client.SendRequestWithJsonAsync<Models.KefuStateChangeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
} }
} }
} }

View File

@ -1,13 +1,13 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /batchimportskill/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /batchimportskill/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class BatchImportSkillRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class BatchImportSkillRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
public static class Types public static class Types
{ {

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{
/// <summary>
/// <para>表示 [POST] /batchimportskill/{TOKEN} 接口的响应。</para>
/// </summary>
public class BatchImportSkillResponse : WechatOpenAIResponse
{
}
}

View File

@ -1,13 +1,13 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /label/batchset/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /label/batchset/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class LabelBatchSetRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class LabelBatchSetRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置微信 AppId。 /// 获取或设置微信 AppId。

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{
/// <summary>
/// <para>表示 [POST] /label/batchset/{TOKEN} 接口的响应。</para>
/// </summary>
public class LabelBatchSetResponse : WechatOpenAIResponse
{
}
}

View File

@ -1,12 +1,12 @@
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /publish_progress/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /publish_progress/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class PublishProgressRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class PublishProgressRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置管理员 ID。 /// 获取或设置管理员 ID。

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /publish_progress/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /publish_progress/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class PublishProgressResponse : WechatOpenAIPlatformResponse<PublishProgressResponse.Types.Data> public class PublishProgressResponse : WechatOpenAIResponse<PublishProgressResponse.Types.Data>
{ {
public static class Types public static class Types
{ {

View File

@ -1,12 +1,12 @@
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /publish/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /publish/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class PublishRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class PublishRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置管理员 ID。 /// 获取或设置管理员 ID。

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{
/// <summary>
/// <para>表示 [POST] /publish/{TOKEN} 接口的响应。</para>
/// </summary>
public class PublishResponse : WechatOpenAIResponse
{
}
}

View File

@ -1,13 +1,13 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /setautoreply/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /setautoreply/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class SetAutoReplyRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class SetAutoReplyRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置管理员 ID。 /// 获取或设置管理员 ID。

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{
/// <summary>
/// <para>表示 [POST] /setautoreply/{TOKEN} 接口的响应。</para>
/// </summary>
public class SetAutoReplyResponse : WechatOpenAIResponse
{
}
}

View File

@ -1,11 +1,11 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /aibot/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /aibot/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class AIBotRequest : WechatOpenAIPlatformRequest public class AIBotRequest : WechatOpenAIRequest
{ {
/// <summary> /// <summary>
/// 获取或设置请求签名。 /// 获取或设置请求签名。

View File

@ -1,11 +1,11 @@
using System; using System;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /aibot/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /aibot/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class AIBotResponse : WechatOpenAIPlatformResponse public class AIBotResponse : WechatOpenAIResponse
{ {
public static class Types public static class Types
{ {

View File

@ -1,12 +1,12 @@
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /gethotquerydetail/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /gethotquerydetail/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class GetHotQueryDetailRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class GetHotQueryDetailRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置分页页数。 /// 获取或设置分页页数。

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /gethotquerydetail/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /gethotquerydetail/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class GetHotQueryDetailResponse : WechatOpenAIPlatformResponse<GetHotQueryDetailResponse.Types.Data> public class GetHotQueryDetailResponse : WechatOpenAIResponse<GetHotQueryDetailResponse.Types.Data>
{ {
public static class Types public static class Types
{ {

View File

@ -1,12 +1,12 @@
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /gethotquerylist/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /gethotquerylist/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class GetHotQueryListRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class GetHotQueryListRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置分页页数。 /// 获取或设置分页页数。

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /gethotquerylist/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /gethotquerylist/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class GetHotQueryListResponse : WechatOpenAIPlatformResponse<GetHotQueryListResponse.Types.Data> public class GetHotQueryListResponse : WechatOpenAIResponse<GetHotQueryListResponse.Types.Data>
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /sign/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /sign/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class SignRequest : WechatOpenAIPlatformRequest public class SignRequest : WechatOpenAIRequest
{ {
/// <summary> /// <summary>
/// 获取或设置用户 ID。 /// 获取或设置用户 ID。

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /sign/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /sign/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class SignResponse : WechatOpenAIPlatformResponse public class SignResponse : WechatOpenAIResponse
{ {
/// <summary> /// <summary>
/// 获取或设置请求签名。 /// 获取或设置请求签名。

View File

@ -1,13 +1,13 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /batchreply/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /batchreply/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class BatchReplyRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class BatchReplyRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置直播 ID。 /// 获取或设置直播 ID。

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{
/// <summary>
/// <para>表示 [POST] /batchreply/{TOKEN} 接口的响应。</para>
/// </summary>
public class BatchReplyResponse : WechatOpenAIResponse
{
}
}

View File

@ -1,12 +1,12 @@
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /generatereport/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /generatereport/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class GenerateReportRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class GenerateReportRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置直播 ID。 /// 获取或设置直播 ID。

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{
/// <summary>
/// <para>表示 [POST] /generatereport/{TOKEN} 接口的响应。</para>
/// </summary>
public class GenerateReportResponse : WechatOpenAIResponse
{
}
}

View File

@ -1,13 +1,13 @@
using System; using System;
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /assetsupload/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /assetsupload/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class AssetsUploadRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class AssetsUploadRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置用户 ID。 /// 获取或设置用户 ID。

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /assetsupload/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /assetsupload/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class AssetsUploadResponse : WechatOpenAIPlatformResponse public class AssetsUploadResponse : WechatOpenAIResponse
{ {
/// <summary> /// <summary>
/// 获取或设置文件标识。 /// 获取或设置文件标识。

View File

@ -1,12 +1,12 @@
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /getbindlink/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /getbindlink/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class GetBindLinkRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class GetBindLinkRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置直播 ID。 /// 获取或设置直播 ID。

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /getbindlink/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /getbindlink/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class GetBindLinkResponse : WechatOpenAIPlatformResponse public class GetBindLinkResponse : WechatOpenAIResponse
{ {
/// <summary> /// <summary>
/// 获取或设置绑定链接 URL。 /// 获取或设置绑定链接 URL。

View File

@ -0,0 +1,12 @@
using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{
/// <summary>
/// <para>表示 [POST] /getbindlist/{TOKEN} 接口的请求。</para>
/// </summary>
[XmlRoot("xml")]
public class GetBindListRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{
}
}

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /getbindlist/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /getbindlist/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class GetBindListResponse : WechatOpenAIPlatformResponse public class GetBindListResponse : WechatOpenAIResponse
{ {
/// <summary> /// <summary>
/// 获取或设置绑定列表。 /// 获取或设置绑定列表。

View File

@ -1,12 +1,12 @@
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /geth5link/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /geth5link/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class GetH5LinkRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class GetH5LinkRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置页面标题。 /// 获取或设置页面标题。

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /geth5link/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /geth5link/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class GetH5LinkResponse : WechatOpenAIPlatformResponse public class GetH5LinkResponse : WechatOpenAIResponse
{ {
/// <summary> /// <summary>
/// 获取或设置机器人链接 URL。 /// 获取或设置机器人链接 URL。

View File

@ -1,12 +1,12 @@
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /unbindmp/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /unbindmp/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class UnbindMpRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class UnbindMpRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置微信 AppId。 /// 获取或设置微信 AppId。

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{
/// <summary>
/// <para>表示 [POST] /unbindmp/{TOKEN} 接口的响应。</para>
/// </summary>
public class UnbindMpResponse : WechatOpenAIResponse
{
}
}

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/document_classify/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /nlp/document_classify/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class NLPDocumentClassifyRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedUrlEncoded public class NLPDocumentClassifyRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedUrlEncoded
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/document_classify/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /nlp/document_classify/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class NLPDocumentClassifyResponse : WechatOpenAIPlatformResponse public class NLPDocumentClassifyResponse : WechatOpenAIResponse
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/get_similar_query/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /nlp/get_similar_query/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class NLPGetSimilarQueryRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedUrlEncoded public class NLPGetSimilarQueryRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedUrlEncoded
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/get_similar_query/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /nlp/get_similar_query/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class NLPGetSimilarQueryResponse : WechatOpenAIPlatformResponse public class NLPGetSimilarQueryResponse : WechatOpenAIResponse
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/ner-product/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /nlp/ner-product/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class NLPNERProductRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedUrlEncoded public class NLPNERProductRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedUrlEncoded
{ {
public static class Types public static class Types
{ {

View File

@ -1,12 +1,12 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/ner-product/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /nlp/ner-product/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class NLPNERProductResponse : WechatOpenAIPlatformResponse public class NLPNERProductResponse : WechatOpenAIResponse
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/ner/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /nlp/ner/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class NLPNERRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedUrlEncoded public class NLPNERRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedUrlEncoded
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/ner/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /nlp/ner/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class NLPNERResponse : WechatOpenAIPlatformResponse public class NLPNERResponse : WechatOpenAIResponse
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/news-abstraction/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /nlp/news-abstraction/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class NLPNewsAbstractionRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedUrlEncoded public class NLPNewsAbstractionRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedUrlEncoded
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/news-abstraction/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /nlp/news-abstraction/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class NLPNewsAbstractionResponse : WechatOpenAIPlatformResponse public class NLPNewsAbstractionResponse : WechatOpenAIResponse
{ {
/// <summary> /// <summary>
/// 获取或设置摘要提取的结果。 /// 获取或设置摘要提取的结果。

View File

@ -1,11 +1,11 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/rank/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /nlp/rank/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class NLPRankRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedUrlEncoded public class NLPRankRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedUrlEncoded
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/rank/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /nlp/rank/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class NLPRankResponse : WechatOpenAIPlatformResponse public class NLPRankResponse : WechatOpenAIResponse
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/recommend_questions/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /nlp/recommend_questions/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class NLPRecommendQuestionsRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedUrlEncoded public class NLPRecommendQuestionsRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedUrlEncoded
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/recommend_questions/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /nlp/recommend_questions/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class NLPRecommendQuestionsResponse : WechatOpenAIPlatformResponse public class NLPRecommendQuestionsResponse : WechatOpenAIResponse
{ {
/// <summary> /// <summary>
/// 获取或设置推荐的结果。 /// 获取或设置推荐的结果。

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/sensitive/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /nlp/sensitive/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class NLPSensitiveRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedUrlEncoded public class NLPSensitiveRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedUrlEncoded
{ {
public static class Types public static class Types
{ {

View File

@ -1,12 +1,12 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/sensitive/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /nlp/sensitive/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class NLPSensitiveResponse : WechatOpenAIPlatformResponse public class NLPSensitiveResponse : WechatOpenAIResponse
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/sentiment/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /nlp/sentiment/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class NLPSentimentRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedUrlEncoded public class NLPSentimentRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedUrlEncoded
{ {
public static class Types public static class Types
{ {

View File

@ -1,12 +1,12 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/sentiment/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /nlp/sentiment/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class NLPSentimentResponse : WechatOpenAIPlatformResponse public class NLPSentimentResponse : WechatOpenAIResponse
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/tokenize/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /nlp/tokenize/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class NLPTokenizeRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedUrlEncoded public class NLPTokenizeRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedUrlEncoded
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/tokenize/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /nlp/tokenize/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class NLPTokenizeResponse : WechatOpenAIPlatformResponse public class NLPTokenizeResponse : WechatOpenAIResponse
{ {
/// <summary> /// <summary>
/// 获取或设置常规粒度分词结果列表。 /// 获取或设置常规粒度分词结果列表。

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/translate_cn2en/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /nlp/translate_cn2en/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class NLPTranslateChinese2EnglishRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedUrlEncoded public class NLPTranslateChinese2EnglishRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedUrlEncoded
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/translate_cn2en/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /nlp/translate_cn2en/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class NLPTranslateChinese2EnglishResponse : WechatOpenAIPlatformResponse public class NLPTranslateChinese2EnglishResponse : WechatOpenAIResponse
{ {
/// <summary> /// <summary>
/// 获取或设置结果。 /// 获取或设置结果。

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/translate_en2cn/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /nlp/translate_en2cn/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
public class NLPTranslateEnglish2ChineseRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedUrlEncoded public class NLPTranslateEnglish2ChineseRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedUrlEncoded
{ {
public static class Types public static class Types
{ {

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /nlp/translate_en2cn/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /nlp/translate_en2cn/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class NLPTranslateEnglish2ChineseResponse : WechatOpenAIPlatformResponse public class NLPTranslateEnglish2ChineseResponse : WechatOpenAIResponse
{ {
/// <summary> /// <summary>
/// 获取或设置结果。 /// 获取或设置结果。

View File

@ -1,9 +0,0 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{
/// <summary>
/// <para>表示 [POST] /batchimportskill/{TOKEN} 接口的响应。</para>
/// </summary>
public class BatchImportSkillResponse : WechatOpenAIPlatformResponse
{
}
}

View File

@ -1,9 +0,0 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{
/// <summary>
/// <para>表示 [POST] /label/batchset/{TOKEN} 接口的响应。</para>
/// </summary>
public class LabelBatchSetResponse : WechatOpenAIPlatformResponse
{
}
}

View File

@ -1,9 +0,0 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{
/// <summary>
/// <para>表示 [POST] /publish/{TOKEN} 接口的响应。</para>
/// </summary>
public class PublishResponse : WechatOpenAIPlatformResponse
{
}
}

View File

@ -1,9 +0,0 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{
/// <summary>
/// <para>表示 [POST] /setautoreply/{TOKEN} 接口的响应。</para>
/// </summary>
public class SetAutoReplyResponse : WechatOpenAIPlatformResponse
{
}
}

View File

@ -1,9 +0,0 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{
/// <summary>
/// <para>表示 [POST] /batchreply/{TOKEN} 接口的响应。</para>
/// </summary>
public class BatchReplyResponse : WechatOpenAIPlatformResponse
{
}
}

View File

@ -1,9 +0,0 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{
/// <summary>
/// <para>表示 [POST] /generatereport/{TOKEN} 接口的响应。</para>
/// </summary>
public class GenerateReportResponse : WechatOpenAIPlatformResponse
{
}
}

View File

@ -1,12 +0,0 @@
using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{
/// <summary>
/// <para>表示 [POST] /getbindlist/{TOKEN} 接口的请求。</para>
/// </summary>
[XmlRoot("xml")]
public class GetBindListRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable
{
}
}

View File

@ -1,9 +0,0 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{
/// <summary>
/// <para>表示 [POST] /unbindmp/{TOKEN} 接口的响应。</para>
/// </summary>
public class UnbindMpResponse : WechatOpenAIPlatformResponse
{
}
}

View File

@ -1,9 +0,0 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{
/// <summary>
/// <para>表示 [POST] /kefustate/change/{TOKEN} 接口的响应。</para>
/// </summary>
public class KefuStateChangeResponse : WechatOpenAIPlatformResponse
{
}
}

View File

@ -1,9 +0,0 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{
/// <summary>
/// <para>表示 [POST] /sendmsg/{TOKEN} 接口的响应。</para>
/// </summary>
public class SendMessageResponse : WechatOpenAIPlatformResponse
{
}
}

View File

@ -1,15 +1,15 @@
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /kefustate/change/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /kefustate/change/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class KefuStateChangeRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class KefuStateChangeRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置微信 AppId。如果不指定将使用构造 <see cref="WechatOpenAIPlatformClient"/> 时的 <see cref="WechatOpenAIPlatformClientOptions.AppId"/> 参数。 /// 获取或设置微信 AppId。如果不指定将使用构造 <see cref="WechatOpenAIClient"/> 时的 <see cref="WechatOpenAIClientOptions.AppId"/> 参数。
/// </summary> /// </summary>
[XmlElement("appid")] [XmlElement("appid")]
public string? AppId { get; set; } public string? AppId { get; set; }

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{
/// <summary>
/// <para>表示 [POST] /kefustate/change/{TOKEN} 接口的响应。</para>
/// </summary>
public class KefuStateChangeResponse : WechatOpenAIResponse
{
}
}

View File

@ -1,15 +1,15 @@
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /kefustate/get/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /kefustate/get/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class KefuStateGetRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class KefuStateGetRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置微信 AppId。如果不指定将使用构造 <see cref="WechatOpenAIPlatformClient"/> 时的 <see cref="WechatOpenAIPlatformClientOptions.AppId"/> 参数。 /// 获取或设置微信 AppId。如果不指定将使用构造 <see cref="WechatOpenAIClient"/> 时的 <see cref="WechatOpenAIClientOptions.AppId"/> 参数。
/// </summary> /// </summary>
[XmlElement("appid")] [XmlElement("appid")]
public string? AppId { get; set; } public string? AppId { get; set; }

View File

@ -1,9 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /kefustate/get/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /kefustate/get/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class KefuStateGetResponse : WechatOpenAIPlatformResponse public class KefuStateGetResponse : WechatOpenAIResponse
{ {
/// <summary> /// <summary>
/// 获取或设置客服接入状态。 /// 获取或设置客服接入状态。

View File

@ -1,15 +1,15 @@
using System.Xml.Serialization; using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /sendmsg/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /sendmsg/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] [XmlRoot("xml")]
public class SendMessageRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable public class SendMessageRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置微信 AppId。如果不指定将使用构造 <see cref="WechatOpenAIPlatformClient"/> 时的 <see cref="WechatOpenAIPlatformClientOptions.AppId"/> 参数。 /// 获取或设置微信 AppId。如果不指定将使用构造 <see cref="WechatOpenAIClient"/> 时的 <see cref="WechatOpenAIClientOptions.AppId"/> 参数。
/// </summary> /// </summary>
[XmlElement("appid")] [XmlElement("appid")]
public string? AppId { get; set; } public string? AppId { get; set; }

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{
/// <summary>
/// <para>表示 [POST] /sendmsg/{TOKEN} 接口的响应。</para>
/// </summary>
public class SendMessageResponse : WechatOpenAIResponse
{
}
}

View File

@ -1,22 +0,0 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.ThirdParty
{
/// <summary>
/// <para>表示 [POST] /v2/api/get_welcome_msg 接口的请求。</para>
/// </summary>
public class ApiGetWelcomeMessageRequest : WechatOpenAIThirdPartyRequest
{
/// <summary>
/// 获取或设置渠道 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("channelId")]
[System.Text.Json.Serialization.JsonPropertyName("channelId")]
public string ChannelId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置标签 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("lableId")]
[System.Text.Json.Serialization.JsonPropertyName("lableId")]
public string? LabelId { get; set; }
}
}

View File

@ -1,76 +0,0 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.ThirdParty
{
/// <summary>
/// <para>表示 [POST] /v2/api/get_welcome_msg 接口的响应。</para>
/// </summary>
public class ApiGetWelcomeMessageResponse : WechatOpenAIThirdPartyResponse<ApiGetWelcomeMessageResponse.Types.Data>
{
public static class Types
{
public class Data
{
public static class Types
{
public class WelcomeMessage
{
/// <summary>
/// 获取或设置来源类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("source")]
[System.Text.Json.Serialization.JsonPropertyName("source")]
public int Source { get; set; }
/// <summary>
/// 获取或设置欢迎语 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("msgId")]
[System.Text.Json.Serialization.JsonPropertyName("msgId")]
public string MessageId { get; set; } = default!;
/// <summary>
/// 获取或设置欢迎语类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("msgType")]
[System.Text.Json.Serialization.JsonPropertyName("msgType")]
public string MessageType { get; set; } = default!;
/// <summary>
/// 获取或设置欢迎语内容。
/// </summary>
[Newtonsoft.Json.JsonProperty("welcomeMsg")]
[System.Text.Json.Serialization.JsonPropertyName("welcomeMsg")]
public string MessageContent { get; set; } = default!;
/// <summary>
/// 获取或设置标签。
/// </summary>
[Newtonsoft.Json.JsonProperty("label")]
[System.Text.Json.Serialization.JsonPropertyName("label")]
public string? Label { get; set; }
/// <summary>
/// 获取或设置发送间隔(单位:秒)。
/// </summary>
[Newtonsoft.Json.JsonProperty("newSendInterval")]
[System.Text.Json.Serialization.JsonPropertyName("newSendInterval")]
public int SendInterval { get; set; }
}
}
/// <summary>
/// 获取或设置欢迎语列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("list")]
[System.Text.Json.Serialization.JsonPropertyName("list")]
public Types.WelcomeMessage[] WelcomeMessageList { get; set; } = default!;
/// <summary>
/// 获取或设置欢迎语总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total")]
[System.Text.Json.Serialization.JsonPropertyName("total")]
public int TotalCount { get; set; }
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More