Interface IMessageChannel
- Namespace
- Kook
- Assembly
- Kook.Net.Core.dll
表示一个通用的消息频道,可以用来发送和接收消息。
public interface IMessageChannel : IChannel, IEntity<ulong>
- Inherited Members
- Extension Methods
Methods
DeleteMessageAsync(IMessage, RequestOptions?)
删除一条消息.
Task DeleteMessageAsync(IMessage message, RequestOptions? options = null)
Parameters
messageIMessage要删除的消息。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task
一个表示异步删除操作的任务。
DeleteMessageAsync(Guid, RequestOptions?)
删除一条消息。
Task DeleteMessageAsync(Guid messageId, RequestOptions? options = null)
Parameters
messageIdGuid要删除的消息的 ID。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task
一个表示异步删除操作的任务。
GetMessageAsync(Guid, CacheMode, RequestOptions?)
从此消息频道获取一条消息。
Task<IMessage?> GetMessageAsync(Guid id, CacheMode mode = CacheMode.AllowDownload, RequestOptions? options = null)
Parameters
idGuid消息的 ID。
modeCacheMode指示当前方法是否应该仅从缓存中获取结果,还是可以通过 API 请求获取数据。
optionsRequestOptions发送请求时要使用的选项。
Returns
GetMessagesAsync(IMessage, Direction, int, CacheMode, RequestOptions?)
获取此消息频道中的一些消息。
IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(IMessage referenceMessage, Direction dir, int limit = 50, CacheMode mode = CacheMode.AllowDownload, RequestOptions? options = null)
Parameters
referenceMessageIMessage要开始获取消息的参考位置的消息。
dirDirection要以参考位置为基准,获取消息的方向。
limitint要获取的消息数量。
modeCacheMode指示当前方法是否应该仅从缓存中获取结果,还是可以通过 API 请求获取数据。
optionsRequestOptions发送请求时要使用的选项。
Returns
- IAsyncEnumerable<IReadOnlyCollection<IMessage>>
分页的消息集合的异步可枚举对象。
Remarks
important
返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。
warning
请勿一次性获取过多消息,这可能会导致抢占式速率限制,甚至触发实际的速率限制,从而导致 Bot 服务暂停。
此方法将尝试获取此频道最新的
limit 条消息。此方法会根据 MaxMessagesPerBatch
将请求拆分。换句话说,如果要获取 500 条消息,而 MaxMessagesPerBatch 的常量为
50,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。
FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>)
方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。
GetMessagesAsync(Guid, Direction, int, CacheMode, RequestOptions?)
获取此消息频道中的一些消息。
IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(Guid referenceMessageId, Direction dir, int limit = 50, CacheMode mode = CacheMode.AllowDownload, RequestOptions? options = null)
Parameters
referenceMessageIdGuid要开始获取消息的参考位置的消息的 ID。
dirDirection要以参考位置为基准,获取消息的方向。
limitint要获取的消息数量。
modeCacheMode指示当前方法是否应该仅从缓存中获取结果,还是可以通过 API 请求获取数据。
optionsRequestOptions发送请求时要使用的选项。
Returns
- IAsyncEnumerable<IReadOnlyCollection<IMessage>>
分页的消息集合的异步可枚举对象。
Remarks
important
返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。
warning
请勿一次性获取过多消息,这可能会导致抢占式速率限制,甚至触发实际的速率限制,从而导致 Bot 服务暂停。
此方法将尝试获取此频道最新的
limit 条消息。此方法会根据 MaxMessagesPerBatch
将请求拆分。换句话说,如果要获取 500 条消息,而 MaxMessagesPerBatch 的常量为
50,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。
FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>)
方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。
GetMessagesAsync(int, CacheMode, RequestOptions?)
获取此消息频道中的最新的一些消息。
IAsyncEnumerable<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = 50, CacheMode mode = CacheMode.AllowDownload, RequestOptions? options = null)
Parameters
limitint要获取的消息数量。
modeCacheMode指示当前方法是否应该仅从缓存中获取结果,还是可以通过 API 请求获取数据。
optionsRequestOptions发送请求时要使用的选项。
Returns
- IAsyncEnumerable<IReadOnlyCollection<IMessage>>
分页的消息集合的异步可枚举对象。
Remarks
important
返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。
warning
请勿一次性获取过多消息,这可能会导致抢占式速率限制,甚至触发实际的速率限制,从而导致 Bot 服务暂停。
此方法将尝试获取此频道最新的
limit 条消息。此方法会根据 MaxMessagesPerBatch
将请求拆分。换句话说,如果要获取 500 条消息,而 MaxMessagesPerBatch 的常量为
50,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。
FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>)
方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。
ModifyMessageAsync(Guid, Action<MessageProperties>, RequestOptions?)
修改一条消息。
Task ModifyMessageAsync(Guid messageId, Action<MessageProperties> func, RequestOptions? options = null)
Parameters
messageIdGuid要修改的消息的 ID。
funcAction<MessageProperties>一个包含修改消息属性的委托。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task
一个表示异步修改操作的任务。
- See Also
ModifyMessageAsync<T>(Guid, Action<MessageProperties<T>>, RequestOptions?)
修改一条消息。
Task ModifyMessageAsync<T>(Guid messageId, Action<MessageProperties<T>> func, RequestOptions? options = null)
Parameters
messageIdGuid要修改的消息的 ID。
funcAction<MessageProperties<T>>一个包含修改消息属性的委托。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task
一个表示异步修改操作的任务。
Type Parameters
T模板参数的类型。
- See Also
SendCardAsync(ICard, IQuote?, IUser?, RequestOptions?)
发送卡片消息到此消息频道。
Task<Cacheable<IUserMessage, Guid>> SendCardAsync(ICard card, IQuote? quote = null, IUser? ephemeralUser = null, RequestOptions? options = null)
Parameters
cardICard要发送的卡片。
quoteIQuote消息引用,用于回复消息。
ephemeralUserIUser临时消息的接收者。如果设置为指定的用户,则仅该用户可以看到此消息,否则所有人都可以看到此消息。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task<Cacheable<IUserMessage, Guid>>
一个表示异步发送操作的任务。任务的结果包含所发送消息的可延迟加载的消息对象。
SendCardsAsync(IEnumerable<ICard>, IQuote?, IUser?, RequestOptions?)
发送卡片消息到此消息频道。
Task<Cacheable<IUserMessage, Guid>> SendCardsAsync(IEnumerable<ICard> cards, IQuote? quote = null, IUser? ephemeralUser = null, RequestOptions? options = null)
Parameters
cardsIEnumerable<ICard>要发送的卡片。
quoteIQuote消息引用,用于回复消息。
ephemeralUserIUser临时消息的接收者。如果设置为指定的用户,则仅该用户可以看到此消息,否则所有人都可以看到此消息。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task<Cacheable<IUserMessage, Guid>>
一个表示异步发送操作的任务。任务的结果包含所发送消息的可延迟加载的消息对象。
SendCardsAsync<T>(ulong, T, IQuote?, IUser?, JsonSerializerOptions?, RequestOptions?)
发送卡片消息到此消息频道。
Task<Cacheable<IUserMessage, Guid>> SendCardsAsync<T>(ulong templateId, T parameters, IQuote? quote = null, IUser? ephemeralUser = null, JsonSerializerOptions? jsonSerializerOptions = null, RequestOptions? options = null)
Parameters
templateIdulong消息模板的 ID。
parametersT传入消息模板的参数。
quoteIQuote消息引用,用于回复消息。
ephemeralUserIUser临时消息的接收者。如果设置为指定的用户,则仅该用户可以看到此消息,否则所有人都可以看到此消息。
jsonSerializerOptionsJsonSerializerOptions序列化模板参数时要使用的序列化选项。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task<Cacheable<IUserMessage, Guid>>
一个表示异步发送操作的任务。任务的结果包含所发送消息的可延迟加载的消息对象。
Type Parameters
T参数的类型。
SendFileAsync(FileAttachment, IQuote?, IUser?, RequestOptions?)
发送文件到此消息频道。
Task<Cacheable<IUserMessage, Guid>> SendFileAsync(FileAttachment attachment, IQuote? quote = null, IUser? ephemeralUser = null, RequestOptions? options = null)
Parameters
attachmentFileAttachment文件的附件信息。
quoteIQuote消息引用,用于回复消息。
ephemeralUserIUser临时消息的接收者。如果设置为指定的用户,则仅该用户可以看到此消息,否则所有人都可以看到此消息。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task<Cacheable<IUserMessage, Guid>>
一个表示异步发送操作的任务。任务的结果包含所发送消息的可延迟加载的消息对象。
SendFileAsync(Stream, string, AttachmentType, IQuote?, IUser?, RequestOptions?)
发送文件到此消息频道。
Task<Cacheable<IUserMessage, Guid>> SendFileAsync(Stream stream, string filename, AttachmentType type = AttachmentType.File, IQuote? quote = null, IUser? ephemeralUser = null, RequestOptions? options = null)
Parameters
streamStream文件的流。
filenamestring文件名。
typeAttachmentType文件的媒体类型。
quoteIQuote消息引用,用于回复消息。
ephemeralUserIUser临时消息的接收者。如果设置为指定的用户,则仅该用户可以看到此消息,否则所有人都可以看到此消息。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task<Cacheable<IUserMessage, Guid>>
一个表示异步发送操作的任务。任务的结果包含所发送消息的可延迟加载的消息对象。
SendFileAsync(string, string?, AttachmentType, IQuote?, IUser?, RequestOptions?)
发送文件到此消息频道。
Task<Cacheable<IUserMessage, Guid>> SendFileAsync(string path, string? filename = null, AttachmentType type = AttachmentType.File, IQuote? quote = null, IUser? ephemeralUser = null, RequestOptions? options = null)
Parameters
pathstring文件的路径。
filenamestring文件名。
typeAttachmentType文件的媒体类型。
quoteIQuote消息引用,用于回复消息。
ephemeralUserIUser临时消息的接收者。如果设置为指定的用户,则仅该用户可以看到此消息,否则所有人都可以看到此消息。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task<Cacheable<IUserMessage, Guid>>
一个表示异步发送操作的任务。任务的结果包含所发送消息的可延迟加载的消息对象。
SendTextAsync(string, IQuote?, IUser?, RequestOptions?)
发送文本消息到此消息频道。
Task<Cacheable<IUserMessage, Guid>> SendTextAsync(string text, IQuote? quote = null, IUser? ephemeralUser = null, RequestOptions? options = null)
Parameters
textstring要发送的文本。
quoteIQuote消息引用,用于回复消息。
ephemeralUserIUser临时消息的接收者。如果设置为指定的用户,则仅该用户可以看到此消息,否则所有人都可以看到此消息。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task<Cacheable<IUserMessage, Guid>>
一个表示异步发送操作的任务。任务的结果包含所发送消息的可延迟加载的消息对象。
SendTextAsync<T>(ulong, T, IQuote?, IUser?, JsonSerializerOptions?, RequestOptions?)
发送文本消息到此消息频道。
Task<Cacheable<IUserMessage, Guid>> SendTextAsync<T>(ulong templateId, T parameters, IQuote? quote = null, IUser? ephemeralUser = null, JsonSerializerOptions? jsonSerializerOptions = null, RequestOptions? options = null)
Parameters
templateIdulong消息模板的 ID。
parametersT传入消息模板的参数。
quoteIQuote消息引用,用于回复消息。
ephemeralUserIUser临时消息的接收者。如果设置为指定的用户,则仅该用户可以看到此消息,否则所有人都可以看到此消息。
jsonSerializerOptionsJsonSerializerOptions序列化模板参数时要使用的序列化选项。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task<Cacheable<IUserMessage, Guid>>
一个表示异步发送操作的任务。任务的结果包含所发送消息的可延迟加载的消息对象。
Type Parameters
T参数的类型。