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

如何提取Paladins API数据并嵌入Discord.js RichEmbed?

解决Paladins统计Discord机器人提取API数据并填充RichEmbed的问题

看起来你已经走完了大半流程,问题主要出在代码结构和数据访问方式上,我帮你梳理下解决步骤:

首先修正代码结构的核心问题

你原来的代码里,if(!err)后面没有加花括号,导致创建Embed的逻辑不在pal.getPlayer的回调函数内部——这意味着当你尝试访问data时,它还没被异步请求的结果赋值,自然取不到数据。先把代码块用花括号包裹,确保所有处理API返回数据的逻辑都在回调函数里。

正确提取API返回字段

首先你已经能在console.log看到数据,那先把console.log(data)放到回调里,明确返回的data结构(注意JavaScript是大小写敏感的,比如Created_Datetime和created_datetime是完全不同的键)。

提取字段时直接用对象的点语法或方括号语法即可,不需要value()方法。比如如果返回数据里有Created_Datetime字段,直接写data.Created_Datetime或者data['Created_Datetime']就行。

修正后的完整代码示例

var platform = args[1].toUpperCase();
var player = args[2];
var sessionId;

pal.connect('PC', (err, res) => {
  if (!err) {
    sessionId = res;
    // 在getPlayer的回调内处理数据,确保异步请求完成后再操作
    pal.getPlayer(sessionId, platform, player, (err, data) => {
      if (!err) {
        // 打印数据确认结构,方便调试字段名
        console.log('API返回的玩家数据:', data);
        
        // 提取你需要的字段,替换成实际存在的键名
        const createdDatetime = data.Created_Datetime;
        const playerName = data.Name;
        const playerLevel = data.Level;
        const playerAvatar = data.Avatar_URL; // 假设API返回头像地址字段

        // 创建并填充RichEmbed
        const embed = new Discord.RichEmbed()
          .setAuthor(playerName, playerAvatar)
          .setTitle(`${playerName}的Paladins个人统计`)
          .addField('账号创建时间', createdDatetime, true)
          .addField('当前等级', playerLevel, true)
          .setColor('#2ecc71') // 设置Embed主题色
          .setFooter('数据来源:Paladins API');

        // 发送Embed到对应频道,这里假设你有可用的message对象
        message.channel.send(embed);
      } else {
        // 处理获取数据失败的情况
        console.error('获取玩家数据出错:', err);
        message.channel.send('抱歉,获取玩家数据失败,请检查平台和用户名是否正确!');
      }
    });
  } else {
    // 处理连接API失败的情况
    console.error('连接Paladins API出错:', err);
    message.channel.send('无法连接到Paladins API,请稍后重试!');
  }
});

几个关键注意点

  • 所有依赖data的逻辑必须放在pal.getPlayer的回调内部,因为API请求是异步的,回调外的代码会在数据返回前执行,导致data未定义。
  • 字段名必须和API返回的完全一致,大小写不能出错,拿不准就看console.log的输出结构。
  • 别忘了添加错误处理,避免机器人崩溃的同时,给用户友好的反馈提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:00:47