当前位置: 首页 > 知识库问答 >
问题:

在从节点服务器向通道发送消息时,有没有一种方法可以获得不和谐消息ID?

羊舌迪
2023-03-14

在Express/Node.js应用程序中使用Discord.js,我试图构建一个bot来定期获取外部数据,并使用包含这些数据的一些元素的嵌入式消息来更新Discord。我正在尝试添加一个功能,该功能将检查该数据是否从外部源删除(在下一次抓取时不再存在),然后删除包含发送的数据的特定消息。

一些发布在Discord中的msg可能有重复的数据项,所以我想按特定的msg ID删除,但似乎发布到Discord时分配了msg ID。

从Discord.js发送时,有没有一种方法以编程方式抓取或返回这个消息ID,而不是手动从Discord GUI中复制/粘贴消息ID?换句话说,我需要我的bot知道删除哪个消息,如果它看到msg的源数据不再被抓取。

// FOR-LOOP TO POST DATA TO DISCORD
// see if those IDs are found in persistent array
        for (var i = 0; i < newIDs.length; i++) {
            if (currentIDs.indexOf(newIDs[i]) == -1) {
                currentIDs.push(newIDs[i]); // add to persistent array
                TD.getTicket(33, newIDs[i]) // get ticket object
                .then(ticket => { postDiscord(ticket); }) // post to DISCORD!
            }
        }

        // if an ID in the persistent array is not in temp array,
        // delete from persistent array & existing DISCORD msg.
        // message.delete() - need message ID to get msg object...
        // var msg = channel.fetchMessage(messageID) ?

共有1个答案

拓拔君博
2023-03-14

让我向你介绍:

https://discord.js.org/#/docs/main/stable/class/message

假设您使用的是Async/Await,则会有如下内容:

async () => {
 let message = await channel.send(some message);
 //now you can grab the ID from it like
 console.log(message.id)
}

如果你打算使用。那么对于承诺,也是同样的想法:

channel.send(some message)
    .then(message => {
     console.log(message.id)
     });

ID是消息的属性,只有在收到来自Discord API的响应后才会获得ID。这意味着您必须异步地处理它们。

 类似资料:
  • 我一直在四处寻找,似乎找不到我用Typescript制作的不和谐机器人的这个问题的答案。我的所有命令都放在它们自己的文件夹中,每个命令都有一个单独的文件。有助于保持井井有条。 我见过有人说 但这给了我并且 实际上,每当有人运行重启命令时,我会尝试在每个文本频道(从列表中给出)发送一条机器人消息,因为不管出于什么原因,人们总是重启机器人。我把它实现为一件有趣的事情,如果有人需要使用它,我会时不时地以

  • 我想连接到包含此信息的mqseries服务器

  • 请不要说“已经回答”,因为我尝试了一切,包括这里的所有相关帖子,显然,我正在阅读api文档。 完全错误为: 忽略on_ready Traceback(最近一次调用)中的异常:文件“/usr/local/lib/python3.8/dist packages/discord/client.py”,第312行,在on_ready wait channel中的事件wait coro(*args,**kw

  • 问题内容: 我正在使用GhostDriver的Java绑定对PhantomJS运行Selenium接受测试。 如果PhantomJS请求的网页之一通过console.log登录到Javascript控制台,是否可以捕获或查看这些消息? 我想这的答案很简单,但我无法解决! 问题答案:

  • 我有一个netty服务器和客户端在项目中,希望他们之间交换消息。 服务器处理程序代码: 客户端处理程序代码: MessageDecoder代码: 服务器输出如下: 客户端输出如下: 所以从日志的输出可以看出,客户端向服务器端发送了10条消息,而服务器端只接收到一条消息。我的代码有什么问题吗?我想也许是我误用的原物?

  • 在不和谐中发送私人消息的问题。以下是两个代码示例(简化)。 此代码块将消息(cookie表情符号)发回给用户,无论它是私人聊天(与机器人)还是频道 这段代码私下向用户发送了一条消息,如果用户在通道中发送了命令,它就可以工作了,我对此很满意。 问题是,我希望用户能够在频道或私人消息中向bot发送一条消息“.cookie”,并获取私人消息(cookie表情符号)。 最后一段代码。如果我发出命令。coo