我正在为我的 Discord 机器人使用 Javascript 来调用 Giphy Random API Endpoint。但问题是当我试图让机器人在 Discord 聊天中显示 gif 时,它什么也没显示。它只是一个空白,它甚至不显示 gif URL。
我知道它正在获取 gif URL,因为它显示在日志中:
GET URL BROOOOO: https://giphy.com/gifs/animated-top-icons-dAkW9Z1YuihG0
但它只是不会在 Discord 中呈现它,如此处所示。它是空白的。
我很困惑,因为这是与内置 Discord Giphy 搜索功能相同的 URL。(如果您键入/giphy <search-terms-here>
,它将嵌入您选择的 gif,该 gif 遵循与我尝试使用的相同的 gif URL。
我一定是忽略了一些小事或犯了一个简单的错误。
这是调用 Giphy 的函数:
// Function that randomly gets a gif via Giphy Random API Endpoint
const randomGiphy = async () => {
try {
const response = await fetch(`https://api.giphy.com/v1/gifs/random?api_key=${process.env.GIPHY_API}&tag=&rating=G`,
{
method: 'GET',
headers: {
'Accept': 'application/json'
},
});
const myJson = await response.json();
console.log('json');
console.log(myJson);
console.log('data');
console.log(myJson['data']);
console.log('data url');
console.log(myJson['data']['url']);
console.log(`GET URL BROOOOO: ${myJson['data']['url']}`);
return myJson['data']['url']; // GIF URL OBTAINED HERE
}
catch {
console.log("couldnt fetch a gif bruh.");
}
}
调用Giphy API函数的代码:(就是!gif
命令)
// Will recognize commands to generate various quotes
client.on('message', async message => {
if (message.content === 'ping') {
message.reply('pong');
}
else if (message.content === '!dadjoke') {
var dadJoke = await getDadJoke();
message.reply(dadJoke);
}
else if (message.content === '!happy') {
message.reply('');
}
else if (message.content === '!encourageme') {
message.reply(getProductivityQuote());
}
else if (message.content === '!love') {
message.reply('');
var request = "https://webhook.site/836ecfe2-a79f-41df-b5a8-64850105850d";
try {
const response = await fetch(request,
{
method: 'GET',
headers: {
'Accept': 'application/json'
},
});
const myJson = await response.json();
}
catch {
console.log("couldnt make call to webhook");
}
}
else if (message.content === '!gif') {
message.reply('getting gif...');
var gif_url = randomGiphy();
message.reply(randomGiphy());
}
else if (detectBadWords === true ) {
for (var i = 0; i < forbiddenWords.length; i++) {
if (message.content.toLowerCase().includes(forbiddenWords[i])) {
if (message.author.id === client.user.id) return;
message.reply('Stop cursing or I\'m going to suck your bootyflakes!');
// message.delete();
break;
}
}
}
});