Axios请求Opensea API返回json为undefined 无法提取trait数据
问题排查与修复方案
错误原因
- 请求参数异常:代码中
params的collection字段前残留了无效的enter code here占位符,导致请求参数不符合接口要求,触发API返回错误或空响应。 - 响应字段读取错误:OpenSea
/api/v1/assets接口返回的response.data.assets是数组类型,你设置了limit:1仅返回1条数据,需要先取下标为0的元素再读取子字段,直接访问assets.token_id必然返回undefined。 - 接口鉴权缺失:当前OpenSea V1接口要求所有请求携带
X-API-KEY请求头,未携带密钥的请求会被拦截,返回异常响应。
修正后可运行代码
var axios = require("axios").default; // 替换为你自己在OpenSea开发者平台申请的API密钥 const OPENSEA_API_KEY = "YOUR_OPENSEA_API_KEY"; var r = { method: 'GET', url: 'https://api.opensea.io/api/v1/assets', headers: { "X-API-KEY": OPENSEA_API_KEY }, params: { order_direction: 'desc', offset: '0', limit: '1', collection: 'brotchain' } }; axios.request(r).then(function (response) { // 增加空判断避免报错 if (response.data?.assets?.length > 0) { const targetAsset = response.data.assets[0]; // 打印token_id console.log("token_id:", targetAsset.token_id); // 打印你需要的trait数据 console.log("traits数据:", JSON.stringify(targetAsset.traits, null, 2)); } }).catch(function (error) { // 打印完整错误信息方便定位问题 console.error("请求错误:", error.response?.data || error.message); });
内容的提问来源于stack exchange,提问作者reb0und
相关产品推荐
相关产品推荐

