如何使用JavaScript实现Discord机器人的Meme梗图调用功能
实现步骤
1. 安装HTTP请求依赖
Node.js原生没有简便的HTTP请求方法,先安装node-fetch库用于调用接口:
npm install node-fetch@2
在你的机器人代码顶部引入依赖:
const fetch = require('node-fetch'); // discord.js v13及以上版本需要额外导入Embed构造类 const { MessageEmbed } = require('discord.js');
2. 修改命令逻辑
首先需要给你写命令逻辑所在的函数添加async关键字,否则无法用await处理异步请求,修改后的case代码如下:
case "Show me some memes": message.channel.send("MEMEY.....MEMEY.....MEMEY......\n") // 请求梗图API解析返回结果 const res = await fetch("https://meme-api.herokuapp.com/gimme"); const data = await res.json(); // 构造Embed消息 const memeEmbed = new MessageEmbed() .setTitle(data.title) .setColor("RANDOM") .setImage(data.url); // 发送Embed await message.channel.send({ embeds: [memeEmbed] }); break;
版本适配说明
如果你使用的是discord.js v14及以上版本,Embed构造类更名,调整对应代码即可:
// 导入部分修改为 const { EmbedBuilder } = require('discord.js'); // 构造Embed部分修改为 const memeEmbed = new EmbedBuilder() .setTitle(data.title) .setColor("Random") .setImage(data.url);
另外需要确认你已经在Discord开发者后台的Bot设置页打开了Message Content Intent开关,否则机器人无法读取用户消息内容触发命令。
内容的提问来源于stack exchange,提问作者Captain Tiger
相关产品推荐
相关产品推荐

