Imgur链接无法在嵌入中工作(Discord.py)

时间:2020-08-14 04:49:39

标签: python discord discord.py

当我尝试在不和谐的服务器中发布Imgur链接时,该链接不起作用。

我要在这里实现的主要目的是允许用户在Imgur的子类别中搜索随机图像,然后将该图像张贴到它们的嵌入物中。每当我发布链接时,它都不会显示。这对于机器人也不起作用。要添加的是,当我尝试使用embedVar.set_image时,该URL并未发布在嵌入中,而只是显示了标题。这是我的代码,如果有帮助(没有embedVar.set_image)

@client.command()
async def image(ctx, search):
    html_page = urlopen("https://imgur.com/r/" + search)
    soup = BeautifulSoup(html_page)
    search_images = []
    for img in soup.findAll('img'):
        search_images.append(img.get('src'))
    search_command = random.choice(search_images)
    embedVar = discord.Embed(title = search)
    search_url="https:" + search_command.translate({ord(i): None for i in "<>"})
    embedVar.add_field(name = search, value = search_url)
    await ctx.send(embed = embedVar)

还附有一张图片,用于进一步详细说明我的问题。 任何形式的帮助表示赞赏。 谢谢!

https://i.stack.imgur.com/Fte0p.png

1 个答案:

答案 0 :(得分:0)

我建议使用imgur api,您需要从here获取客户ID。 这样会发送它。

enter image description here

import requests

@bot.command()
async def image(ctx, search):
    url = f"https://api.imgur.com/3/gallery/search/?q={search}"

    payload = {}
    files = {}
    headers = {
        'Authorization': 'Client-ID CLIENT_ID_HERE'
    }

    response = requests.request("GET", url, headers=headers, data=payload, files=files)
    res = json.loads(response.text.encode('UTF-8'))

    search_url = res['data'][random.randint(0, 10)]['link']
    await ctx.send(search_url)