You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在discord.py中获取Embed的文本内容与作者信息?

识别Embed消息文本与作者信息的可行方案

以Discord平台为例(Embed消息最常见的应用场景),可以通过消息对象的结构化属性直接提取所需信息,以下是具体实现方式:

  • 监听消息事件后,先检查消息是否包含Embed内容(通过embeds数组判断)
  • 提取Embed文本:
    • 标题:embed.title
    • 主描述文本:embed.description
    • 自定义字段文本:遍历embed.fields数组,每个字段包含name(字段名)和value(字段值)
  • 提取作者信息:直接读取embed.author对象,其中name为作者名称,iconURL为作者头像链接(若存在)

代码示例(Discord.js v14)

client.on('messageCreate', (message) => {
  // 过滤非Embed消息
  if (message.embeds.length === 0) return;

  const targetEmbed = message.embeds[0];

  // 提取文本内容
  const title = targetEmbed.title ?? '无标题';
  const description = targetEmbed.description ?? '无描述';
  const fieldsContent = targetEmbed.fields.length > 0 
    ? targetEmbed.fields.map(f => `${f.name}: ${f.value}`).join('\n') 
    : '无自定义字段';

  // 提取作者信息
  const authorInfo = targetEmbed.author 
    ? `作者名: ${targetEmbed.author.name}\n头像链接: ${targetEmbed.author.iconURL()}` 
    : '无作者信息';

  // 输出或处理提取到的信息
  console.log(`=== Embed内容 ===`);
  console.log(title);
  console.log(description);
  console.log(fieldsContent);
  console.log(`=== 作者信息 ===`);
  console.log(authorInfo);
});

如果是其他平台的Embed消息,核心逻辑一致:找到消息携带的结构化Embed对象,直接读取对应属性即可。不同平台的Embed结构会有细微差异,但title、description、author这类核心字段基本通用。

内容的提问来源于stack exchange,提问作者captainowl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 14:30:46