Interface IRestMessageChannel
表示一个基于 REST 的通用的消息频道,可以用来发送和接收消息。
public interface IRestMessageChannel : IMessageChannel, IChannel, IEntity<ulong>
- Inherited Members
- Extension Methods
Methods
GetMessageAsync(Guid, RequestOptions?)
从此消息频道获取一条消息。
Task<RestMessage> GetMessageAsync(Guid id, RequestOptions? options = null)
Parameters
idGuid消息的 ID。
optionsRequestOptions发送请求时要使用的选项。
Returns
- Task<RestMessage>
一个表示异步获取操作的任务。任务结果包含检索到的消息;如果未找到具有指定 ID 的消息,则返回
null。
GetMessagesAsync(IMessage, Direction, int, RequestOptions?)
获取此消息频道中的一些消息。
IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(IMessage referenceMessage, Direction dir, int limit = 50, RequestOptions? options = null)
Parameters
referenceMessageIMessage要开始获取消息的参考位置的消息。
dirDirection要以参考位置为基准,获取消息的方向。
limitint要获取的消息数量。
optionsRequestOptions发送请求时要使用的选项。
Returns
- IAsyncEnumerable<IReadOnlyCollection<RestMessage>>
分页的消息集合的异步可枚举对象。
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, RequestOptions?)
获取此消息频道中的一些消息。
IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(Guid referenceMessageId, Direction dir, int limit = 50, RequestOptions? options = null)
Parameters
referenceMessageIdGuid要开始获取消息的参考位置的消息的 ID。
dirDirection要以参考位置为基准,获取消息的方向。
limitint要获取的消息数量。
optionsRequestOptions发送请求时要使用的选项。
Returns
- IAsyncEnumerable<IReadOnlyCollection<RestMessage>>
分页的消息集合的异步可枚举对象。
Remarks
important
返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。
warning
请勿一次性获取过多消息,这可能会导致抢占式速率限制,甚至触发实际的速率限制,从而导致 Bot 服务暂停。
此方法将尝试获取此频道最新的
limit 条消息。此方法会根据 MaxMessagesPerBatch
将请求拆分。换句话说,如果要获取 500 条消息,而 MaxMessagesPerBatch 的常量为
50,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。
FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>)
方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。
GetMessagesAsync(int, RequestOptions?)
获取此消息频道中的最新的一些消息。
IAsyncEnumerable<IReadOnlyCollection<RestMessage>> GetMessagesAsync(int limit = 50, RequestOptions? options = null)
Parameters
limitint要获取的消息数量。
optionsRequestOptions发送请求时要使用的选项。
Returns
- IAsyncEnumerable<IReadOnlyCollection<RestMessage>>
分页的消息集合的异步可枚举对象。
Remarks
important
返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。
warning
请勿一次性获取过多消息,这可能会导致抢占式速率限制,甚至触发实际的速率限制,从而导致 Bot 服务暂停。
此方法将尝试获取此频道最新的
limit 条消息。此方法会根据 MaxMessagesPerBatch
将请求拆分。换句话说,如果要获取 500 条消息,而 MaxMessagesPerBatch 的常量为
50,则请求将被拆分为 10 个单独请求,因此异步枚举器会异步枚举返回 10 个响应。
FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>)
方法可以展开这 10 个响应返回的集合,并将其合并为一个集合。