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

如何通过Discord API直接获取用户信息?解决代码报错问题

解决Discord API获取用户信息的报错问题

核心错误修复步骤

  • 移除多余的JSON解析操作:response.json()本身就是异步解析好的JavaScript对象,不需要再用JSON.parse()包裹,这是引发语法错误的直接原因。
  • 正确处理异步调用:async函数返回Promise对象,必须用await(需在async上下文内)或.then()链式调用才能拿到实际结果,直接打印会输出处于pending状态的Promise。
  • 替换占位符内容:将URL中的(USER ID)替换为目标用户的实际ID,将(BOT TOKEN)替换为你的Discord机器人令牌。

修正后的完整代码

const fetchUser = async id => {
    const response = await fetch(`https://discord.com/api/v9/users/${id}`, {
        headers: {
            'Authorization': 'Bot YOUR_BOT_TOKEN_HERE'
        }
    });

    // 校验请求状态,避免无效响应导致后续出错
    if (!response.ok) {
        throw new Error(`请求失败: ${response.statusText}`);
    }

    return response.json();
};

// 用自执行async函数处理await调用
(async () => {
    try {
        const userInfo = await fetchUser('123456789012345678'); // 替换为目标用户ID
        console.log(userInfo);
    } catch (err) {
        console.error('获取用户信息出错:', err);
    }
})();

错误原因详解

  1. Promise { <pending> }提示:async函数调用后会立刻返回Promise对象,此时异步请求还未完成,直接打印就会显示pending状态,必须等待Promise完成才能获取到用户数据。
  2. JSON解析语法错误:response.json()已经把响应体解析成了JS对象,你再用JSON.parse()去解析这个对象,会先将对象转为字符串[object Object],这并非合法的JSON格式,因此抛出语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:54:34