我目前正尝试通过 Visual Studio Code 在我的服务器中实现一个不和谐的机器人作为我的一个课外项目,我想添加一个允许机器人生成 gif 的命令。我是通过一个 tenor API 来做这件事的,我已经学习了其他一些教程,并且看到了与我类似的堆栈溢出问题。看完它们之后,这就是我到目前为止所做的。
import requests
import discord
from discord.ext import commands
TenorToken=str('TenorToken')
DiscordToken=str('DiscordToken')
@bot.event
async def on_ready():
print('Logged in as '+ bot.user.name +'!')
def get_gif(searchTerm):
r=requests.get("https://tenor.googleapis.com/v2/search?q=%s&key=%s&client_key=%s&limit=%s"%(searchTerm, TenorToken,DiscordToken,1))
data=r.json()
for result in data['results']:
print('- result -')
#print(result)
for media in result['media']:
print('- media -')
#print(media)
#print(media['gif'])
print('url:', media['gif']['url'])
return data['results'][0]['media'][0]['gif']['url']
@bot.command(name='gif')
async def on_message(ctx,arg):
gif_url=get_gif(arg)
embed=discord.Embed()
embed.set_image(url=gif_url)
await ctx.send(embed=embed)
bot.run(DiscordToken)
在我的服务器上运行我的机器人后,我会输入我的命令,然后会返回一个错误告诉我
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: KeyError: 'media'
我似乎找不到任何使用 ctx 的教程或那些不适用于我正在尝试的教程,目前我对下一步需要做什么有些迷茫。帮助将不胜感激。