从 discord.js 中的消息中获取表情符号 url

Get the Emoji url from a message in discord.js

我正在尝试让我的 discord 机器人显示表情符号的图像文件。 因此,您 post 一个表情符号,机器人会回复一个表情符号的附加图像。

它适用于机器人在线的服务器的表情符号。 但是如何从其他服务器获取url的表情符号?

我用 bot.emojis.get 搜索表情符号 但是我如何搜索客户端 "bot" 的 "outside"?或者以不同的方式获得 url?

我的加入服务器表情符号代码:

const emoji = bot.emojis.get(emojiID);

await message.channel.send({files: [
{
  attachment: emoji.url,
  name: emoji.name + '.png'
}
]});

另一个问题是 emoji.animated 一直返回 undefined。为什么? https://discord.js.org/#/docs/main/stable/class/Emoji?scrollTo=animated

机器人只能访问它们所在服务器上的表情符号。
因此,如果您尝试从机器人不在的服务器中获取表情符号,您将得到 undefined。

emoji.animated returns truefalse (取决于它是否有动画)对我来说。在检查 .animated.

之前确保 emoji 有效

刚刚测试,您可以从另一个服务器获取表情的URL。
message.reactions 你可以得到所有反应的表情符号。并得到他们的 URL

因为所有表情符号 URL 的形式都是:

https://cdn.discordapp.com/emojis/${emoji.id}./* extension of the emoji e.g: .png */

Y.ou 可以简单地使用它,因为您已经有了表情符号的 ID。请记住,这仅适用于机器人有权访问的表情符号。如果您想获取客户端无法访问的 URL 表情符号,则需要使用一些正则表达式从消息中获取表情符号 ID。