首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Discord4j如何向通道REST API发送消息?

Java Discord4j如何向通道REST API发送消息?
EN

Stack Overflow用户
提问于 2021-06-25 19:32:28
回答 1查看 257关注 0票数 0

我尝试向通道发送消息

代码语言:javascript
复制
GatewayDiscordClient gatewayDiscordClient = DiscordClient
                .builder("TOKEN")
                .build()
                .login()
                .block();

gatewayDiscordClient.rest().getChannelById(Snowflake.of("ChannelId")).createMessage("p");

但是频道不会显示历史记录中的消息。我怎么才能修复它呢?

EN

回答 1

Stack Overflow用户

发布于 2021-10-27 14:38:33

Discord4J利用了“懒惰地执行”的Reactor框架。

您必须在发布者(通常是Mono<T>Flux<T>)上使用.subscribe().block()

因此,要获得创建消息的代码:gatewayDiscordClient.rest().getChannelById(Snowflake.of("ChannelId")).createMessage("p").subscribe();

但是,我建议您不要使用RestX类,除非您没有使用网关(在您的问题中,网关正在使用)。Rest类通常提供较少的D4J提供的有用抽象,并且旨在由库或not服务器在内部使用,而不是连接到网关的机器人。

要在不使用rest类的情况下发送消息,您的代码将如下所示:

代码语言:javascript
复制
client.getChannelById(channelIdHere)
    .ofType(MessageChannel.class)
    .flatMap(channel -> channel.createMessage("Your content here"))
    .subscribe();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68130301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档