You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js-selfbot-v13中clickButton不是函数的报错问题

使用discord.js-selfbot-v13时的.clickButton()报错问题

相关代码

const { Client, clickButton } = require('discord.js-selfbot-v13');
const client = new Client({
    checkUpdate: false,
});

client.on('ready', async () => {
    const channelId = '1190781950944886870';
    const channel = client.channels.cache.get(channelId);
  
    if (channel) {
      console.log(`Channel found: ${channel.name}`);
      const message_id = await channel.sendSlash('999736048596816014', 'config channel', channelId);
      console.log('Slash Command Sent! | '+message_id)
      await message_id.clickButton()
    } else {
      console.error('Channel not found.');
    }
  });

client.login('my token');

报错信息

await message_id.clickButton()
                       ^

TypeError: message_id.clickButton is not a function

问题说明

调用message_id.clickButton()时触发上述报错,但官方文档显示clickButton()是Message对象的可用方法。

原因分析

channel.sendSlash()方法的返回值是消息ID字符串,而非完整的Message实例对象。字符串类型不存在clickButton()方法,因此报错。

解决方案

需要先通过消息ID获取对应的Message实例,再调用clickButton()方法:

修改代码中发送slash命令后的部分:

const message_id = await channel.sendSlash('999736048596816014', 'config channel', channelId);
console.log('Slash Command Sent! | '+message_id)
// 通过ID获取Message对象
const targetMessage = await channel.messages.fetch(message_id);
// 调用clickButton方法
await targetMessage.clickButton();

另外,代码中导入的clickButton是多余的,可以删除,因为该方法是Message实例的内置方法,无需单独导入。

内容的提问来源于stack exchange,提问作者user23184304

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 20:27:12