提问人:Xaalek 提问时间:11/4/2023 最后编辑:Xaalek 更新时间:11/14/2023 访问量:98
使用 discord.py 在 Discord 消息中显示缩略图时出现问题
Issue with displaying thumbnail in Discord message using discord.py
问:
我目前正在使用 discord.py 库开发一个 Discord 机器人,我在 Discord 消息中显示缩略图时遇到了问题。我使用的代码似乎是正确的,但我在使缩略图按预期显示时遇到了困难。下面是相关代码:
embedMessage = discord.Embed(
title=entry.title,
description=entry.description,
url=entry.link,
color=self.color,
)
url_thumbnail = entry.links[1]["href"]
embedMessage.set_thumbnail(url=url_thumbnail)
# Converting the original date into a datetime object
date_obj = datetime.strptime(
entry.published, "%a, %d %b %Y %H:%M:%S %z"
)
# Formatting the resulting date
date_format = date_obj.strftime("%a, %d %b %Y %H:%M")
embedMessage.set_footer(text=date_format)
await channel.send(
content="🚀 New Post on PSTHC 📰", embed=embedMessage
)
我已确认缩略图 URL 有效,机器人具有嵌入链接和附加文件所需的权限,并且缩略图 URL 可访问。但是,缩略图不会出现在 Discord 消息中。
以下是我正在使用的缩略图 URL 示例: https://www.staticbo.psthc.fr/wp-content/uploads/2023/11/Logo-PGW23.png
如您所见,url 已正确定义,我可以单击链接访问图像,但图像未显示在 discord 的消息中。
您是否对可能导致此问题的原因有任何见解,或者您对如何解决它有任何建议?任何协助将不胜感激。
先谢谢你!
答:
我还尝试将此图像链接作为缩略图创建嵌入,但没有奏效。我相信错误是 Discord 无法正确渲染来自该域的图像。 解决此问题的另一种方法是下载图像并将其作为文件发送:
import discord
from aiohttp import ClientSession
from io import BytesIO
embed_message = discord.Embed(
title=entry.title,
description=entry.description,
url=entry.link,
color=self.color,
)
url_thumbnail = entry.links[1]["href"]
# download the image and save in a bytes object
async with ClientSession() as session:
async with session.get(url_thumbnail) as resp:
thumb_image = BytesIO(await resp.read())
# creating a discord file
thumb_file = discord.File(fp=thumb_image, filename="thumb.png")
# setting the file as thumbnail
embed_message.set_thumbnail(url=f"attachment://{thumb_file.filename}")
date_obj = datetime.strptime(entry.published, "%a, %d %b %Y %H:%M:%S %z")
date_format = date_obj.strftime("%a, %d %b %Y %H:%M")
embed_message.set_footer(text=date_format)
# sending the embed along with the file
await channel.send(
content="🚀 New Post on PSTHC 📰",
embed=embed_message,
file=thumb_file
)
评论
file=thumb_file
channel.send()
Embed Links
Attach Files
我偶尔会遇到这个错误,我发现总是使用 https://imgur.com 来解决它。我上传我的图片,将其发布到社区,然后将其隐藏起来。然后我右键单击图像并单击弹出的“复制图像链接”选项,并将其添加到我的代码中。自从我开始这样做以来,我没有遇到任何问题!
与往常一样,请确保为不属于您的资产提供信贷。
下面是一个示例:
我有一个机器人,在将代码部署到其他机器人之前,我将其用作测试机器人。可以在此处找到机器人的徽标。
- 我去imgur,然后点击“新帖子”。
- 我选择我的图像,然后命名它。
- 我单击“发布”选项下的“到社区”按钮。
- 我点击“公开发布”,然后去查看图库中的图像。
- 我转到屏幕右下角的“img tools”下,然后单击“隐藏帖子”。
- 隐藏后,我右键单击图像,然后选择“复制图像地址”。
然后你应该有一个有效的链接!
编辑:忘了展示它是如何在我的代码中实现的。我使用齿轮,所以它可能看起来和你的有点不同,但基本思想是一样的。
@commands.hybrid_command(name="helper", description="Displays the help menu")
async def helper(self, *, ctx: commands.Context) -> None:
embed = discord.Embed(
title = "Auxillium Discord Testing Help",
description = "*The Help Interface for the ADB Testing Bot*",
color = discord.Color.green()
)
embed.set_thumbnail(url = "https://i.imgur.com/A4sLrSk.png")
await ctx.send(embed=embed)
评论
entry.links[1]["href"]
下一个:在网站上嵌入功能的正确方法是什么
评论
Embed Links
print(url_thumbnail)