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

如何使用Node.js向Yahoo! Fantasy Sports API发起POST请求

问题根因

你收到的报错已经明确说明问题:Yahoo Fantasy Sports的所有POST接口仅支持application/xml格式的请求体,你的请求要么没有设置正确的Content-Type请求头,要么请求体为空/格式为JSON,因此被接口拒绝。

解决方案

1. 基于 yahoo-fantasy 客户端调用

首先你需要对照官方文档构造符合规则的XML格式请求体,再将请求头和XML内容传入api方法的第三个参数即可,参考代码如下:

app.get('/oauth-complete', async (req, res) => {
  // DELETED CODE THAT SETS REFRESH TOKEN IF NEEDED
  try {
    const sport = 'nfl';
    const { leagues } = (await yf.user.game_leagues(sport)).games[0];
    const { league_key } = leagues[0][0];
    // 替换为你自己的操作对应XML结构,以下为添加球员的示例XML
    const postXml = `<?xml version="1.0" encoding="UTF-8"?>
<fantasy_content>
  <transaction>
    <type>add</type>
    <players>
      <player>
        <player_key>替换为对应球员的player_key</player_key>
        <transaction_data>
          <type>add</type>
          <destination_team_key>替换为目标球队的team_key</destination_team_key>
        </transaction_data>
      </player>
    </players>
  </transaction>
</fantasy_content>`
    const options = {
      headers: {
        'Content-Type': 'application/xml'
      },
      body: postXml
    }
    const response = await yf.api('POST', `https://fantasysports.yahooapis.com/fantasy/v2/league/${league_key}/transactions`, options);
    console.log('response :>> ', response);
  } catch (err) {
    console.error(err);
  }
});

2. 基于 Axios 直接调用

如果要直接用Axios发请求,除了构造XML请求体和设置Content-Type头之外,还需要手动带上OAuth2的访问令牌,参考代码如下:

const postXml = `// 同上的XML请求体内容`
const response = await axios.post(
  `https://fantasysports.yahooapis.com/fantasy/v2/league/${league_key}/transactions?format=json`,
  postXml,
  {
    headers: {
      'Authorization': `Bearer ${你的用户访问令牌}`,
      'Content-Type': 'application/xml'
    }
  }
)

注意事项

Yahoo Fantasy Sports的POST接口对XML格式校验极为严格,节点名称、层级、顺序都必须和官方文档给出的示例完全一致,任意字段错误都会导致请求失败,你可以对照官方PHP示例生成的XML结构调整你的请求内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:30:02