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

如何在discordjs中抓取已发送消息的消息链接?

陈朗
2023-03-14
client.on('message', message => {

    if (message.author.bot) return; //don't log its own messages

    const channel = client.channels.cache.get('805457298867879936'); //sent logs to this channel
    channel.send(
        `${message.author} in ${message.channel} of ${message.guild} said ${message.content}`, //log in discord channel
    );
    
    console.log(
        `${message.author.tag} in #${message.channel.name} of ${message.guild.name} said: ${message.content}`, //log in console
    );

client.login(token); //login

我不知道如何获取消息的消息链接,discordjs文档似乎没有任何关于消息链接的内容。我试过这个:

channel.send(
    "https://discord.com/channels/" + guild.id + "/" + message.id
)

但其结果是“行会没有定义”。我这样做对吗?

共有1个答案

郎飞航
2023-03-14

您可以使用message.url属性获取可以跳转到的url,如下所示:

channel.send(message.url);

文档:https://discord.js.org/#/docs/main/master/class/message?scrollto=URL

此外,当前代码无法工作的原因是没有guild对象,只有一个message对象。因此,为了访问guild属性,您必须首先从message对象获取guild。因此,如果您想坚持当前的代码,也可以这样做:

channel.send(
    "https://discord.com/channels/" + message.guild.id + "/" + message.guild.id
)
 类似资料:
  • 接口说明 轻推轻应用/订阅号支持发送文本、图片、文本卡片、图文、key-value、文件、待办等消息类型。本接口针对各种消息类型和发送的对象(单发、群发以及给部分人发送)进行了定义。 注:openid是用户关注某个轻应用/订阅号后生成的唯一id,单发和给部分人发送消息必须携带此参数,可以通过如下接口来获取: 根据qt_code获取用户基本信息 获取使用者列表 通过userId获取openid 消息

  • 主动发送消息 use EasyWeChat\Kernel\Messages\TextCard; // 获取 Messenger 实例 $messenger = $app->messenger; // 准备消息 $message = new TextCard([ 'title' => '你的请假单审批通过', 'description' => '单号:1928373, ...

  • 向已经创建连接凭据的设备发送消息数据。 请求方式: |4|2|3|message|\r 参数 message 发送的消息内容 返回值: "|4|2|3|1|\r" 发送成功 "|4|2|3|2|\r" 发送失败 Arduino样例: softSerial.print("|4|2|3|DFRobot|\r");

  • 如何发送buf然后接收msg 方法 我正在尝试通过从连接出站发送msg并从入站接收msg然后返回消息Mono来实现此方法。但我只能在that(Publisher)方法中接收消息。它似乎无法返回数据Mono 我试过这个。 但它会一直阻塞,直到连接超时 我尝试了另一个代码。我添加了一个handle方法,并将响应放到map中。然后我可以得到单声道。fromSupply(),在映射处有一个while循环中

  • 问题内容: 我有自己的基于JDA的Discord BOT。我需要向特定频道发送短信。我知道如何将消息作为onEvent响应发送,但是在我的情况下,我没有此类事件。 我有:作者(BOT),令牌和通道号。 我的问题是:如何在 没有事件的情况下 将消息发送到此频道? 问题答案: 好吧,我想我知道你的意思。您无需进行任何事件即可获取频道ID和发送消息。您唯一需要做的就是实例化JDA,调用awaitRead

  • 之前章节定义的SocketIO活动处理函数可以凭借send()函数和emit()函数来连接客户端 接下来的例子是将接收到的消息退回到发送它们的客户端: from flask_socketio import send, emit @socketio.on('message') def handle_message(message): send(message) @socketio.on('