discord.ext.commands.errors.CommandInvokeError:Command raised an exception: KeyError: 'media' when implementing a gif generator for my discord bot

问题描述 投票:0回答:0

我目前正尝试通过 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 的教程或那些不适用于我正在尝试的教程,目前我对下一步需要做什么有些迷茫。帮助将不胜感激。

python keyerror
© www.soinside.com 2019 - 2024. All rights reserved.