我的代码工作正常,机器人发送链接,但Discord不会将其识别为一个并且不会嵌入它。当我自己复制并粘贴它时,它会将其识别为链接并嵌入图像。这是我的代码:
if message.content.startswith(".dog"):
response = requests.get("https://dog.ceo/api/breeds/image/random")
soupRaw = BeautifulSoup(response.text, 'lxml')
soupBackend = str(soupRaw).split("message")
soup2 = soupBackend[1]
soup3 = soup2[3:]
soup = soup3[:-20]
await bot.send_message(message.channel, soup)
以下是一个示例:https://imgur.com/m9GM2wQ
有没有人知道如何在我的机器人发送链接时嵌入链接?谢谢你的帮助!
编辑:我没有尝试发送嵌入式消息,我正在尝试发送一个将由Discord嵌入的链接,如我的示例所示。这不是一个重复的问题。
答案 0 :(得分:0)
答案很晚,但是如果有人正在查看此答案供以后参考;我认为问题在于您的变量soup
包含每个正斜杠(例如,)的转义字符(反斜杠)。 https:\\/\\/images.dog.ceo\\/breeds\\/maltese\\/n02085936_4480.jpg
。
以消息形式发送此消息(即使是普通用户)也会显示该链接,但该链接不会自动为其创建嵌入。您可以将反斜杠替换为功能soup.replace("\\", "")
。
但是,我建议使用一种完全不同的方法,因为response
对象具有一个.content
属性,该属性采用json格式,可以轻松地解析,并用作python dict
,使用内置的import json
库(它将自动为您保留转义码,您不必担心response.text的字符串长度)。
soup = json.loads(response.content).get("message")
应该可以解决问题。