discord.js编辑Slash命令交互消息



所以我在这里使用的是不和谐.js代码:

client.api.interactions(interaction.id, interaction.token).callback.post({
data: {
type: 4,
data: {
content: "Getting Data..."
}
}
})

我希望之后能够编辑此消息,但我看到的所有内容都需要消息id,而且我似乎无法从该代码中获取消息id。

您可以编辑带有此补丁请求的交互响应(请参阅:后续消息(:

PATCH /webhooks/<application_id>/<interaction_token>/messages/@original

使用axios库的基本示例:

axios.patch(`https://discord.com/api/v8/webhooks/${appId}/${interaction.token}/messages/@original`, { content: 'New content' });

此请求的答案还将包含消息id。

以下是一个示例函数,它将把原始消息编辑为纯文本或嵌入对象,并返回不和谐消息对象以供进一步使用(例如添加回复表情符号等(:

const editInteraction = async (client, interaction, response) => {
// Set the data as embed if reponse is an embed object else as content
const data = typeof response === 'object' ? { embeds: [ response ] } : { content: response };
// Get the channel object by channel id:
const channel = await client.channels.resolve(interaction.channel_id);
// Edit the original interaction response:
return axios
.patch(`https://discord.com/api/v8/webhooks/${appId}/${interaction.token}/messages/@original`, data)
.then((answer) => {
// Return the message object:
return channel.messages.fetch(answer.data.id)
})
};

也不是发送一个初始消息;正在获取数据"您也可以发送一个类型为5的空响应。这是内置的方法,也显示了一点加载动画:(请参阅此处(一个优点是这样就不会出现"编辑"。(

client.api.interactions(interaction.id, interaction.token).callback.post({
data: {
type: 5,
},
})

最新更新