首页 > 解决方案 > 无法通过 node-fetch 获取 Steam API 用户配置文件数据

问题描述

每当我尝试获取公开的 Steam 用户个人资料数据时,我都会收到以下错误:

(我已经用 XX 替换了我的 API 密钥和 ID,因为它们不是问题)

Response {
  size: 0,
  timeout: 0,
  [Symbol(Body internals)]: {
    body: Gunzip {
      _writeState: [Uint32Array],
      _readableState: [ReadableState],
      readable: true,
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      _writableState: [WritableState],
      writable: false,
      allowHalfOpen: true,
      _transformState: [Object],
      _hadError: false,
      bytesWritten: 0,
      _handle: [Zlib],
      _outBuffer: <Buffer 7b 22 72 65 73 70 6f 6e 73 65 22 3a 7b 22 70 6c 61 79 65 72 73 22 3a 5b 7b 22 73 74 65 61 6d 69 64 22 3a 22 37 36 35 36 31 31 39 37 39 36 30 34 33 35 ... 16334 more bytes>,
      _outOffset: 0,
      _chunkSize: 16384,
      _defaultFlushFlag: 2,
      _finishFlushFlag: 2,
      _defaultFullFlushFlag: 3,
      _info: undefined,
      _level: -1,
      _strategy: 0
    },
    disturbed: false,
    error: null
  },
  [Symbol(Response internals)]: {
    url: 'https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=XX&steamids=XX',
    status: 200,
    statusText: 'OK',
    headers: Headers { [Symbol(map)]: [Object: null prototype] },
    counter: 0
  }
}

我尝试使用所有类型的 Steam Id,这并没有改变结果,尽管不正确的 ID 类型返回 404、ID64 和 ID 作为名称返回 200。还尝试设置 CORS 标头,这没有任何区别,所以我不'不明白为什么我会得到这样的回应。当我将相同的 API 链接放入浏览器 URL 时,我通常会被重定向到包含我所有配置文件数据的 JSON 页面。

这是我的代码(我使用 node-fetch 来获取 API 数据):

router.get('/fetch', async(req, res) => {
    try {

        const steamAPIUser = "https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=XX&steamids=XX"
        let data = await fetch(steamAPIUser, { method: 'get', headers: { 'Content-Type': 'application/json' }})

        log(data)
        res.send(data)
    } catch(err) {
        log(err)
        res.send(err)
    }
    
})

标签: node.jsexpressfetchnode-fetch

解决方案


推荐阅读