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

Twitter V2 Get Tweets API查询参数无效,无法获取完整推文详情

解决Twitter API v2 Get Tweets无法获取转推数、地理标签等字段的问题

核心原因:你请求的是一条转推(RT)

转推本身只是一条指向原推文的引用记录,它自身并不包含点赞数、转推数、地理标签这些互动或元数据——这些数据都属于被转推的原推文,而非这条转推记录。

具体解决方案

1. 从当前响应中提取原推文ID

你的参数中已经包含了referenced_tweets字段,所以在响应的data对象里应该能拿到被引用的原推文信息,格式类似:

{
  "edit_history_tweet_ids": ["1766576440005333244"],
  "id": "1766576440005333244",
  "text": "RT @MOdesign19: Congratulations KTR. #saloneX #supportlocalfootball",
  "referenced_tweets": [{"type": "retweeted", "id": "原推文ID"}]
}

找到type为retweeted的条目,提取对应的id就是原推文的ID。

2. 调用API获取原推文的完整数据

用提取到的原推文ID再次调用Get Tweets API,带上你配置的tweet.fields等参数,就能拿到原推文的点赞数、转推数、地理标签等所有你需要的字段。

3. 代码调整示例

修改你的请求函数,自动处理转推并获取原推文数据:

async function helloWorld() {
  const response = await needle("get", endpointUrl, params, { headers });
  const tweetData = response.body.data;
  console.log("转推记录基础数据:", tweetData);

  // 检测是否为转推并获取原推文
  if (tweetData?.referenced_tweets) {
    const originalTweetRef = tweetData.referenced_tweets.find(item => item.type === "retweeted");
    if (originalTweetRef) {
      const originalTweetUrl = `https://api.twitter.com/2/tweets/${originalTweetRef.id}`;
      const originalResponse = await needle("get", originalTweetUrl, params, { headers });
      console.log("原推文完整数据:", originalResponse.body.data);
    }
  }
}

其他排查点

  • 检查Bearer Token权限:确保你的Token拥有Tweets read权限(公开数据一般默认具备,但如果是受限内容可能需要额外权限)。
  • 验证参数传递:可以打印实际请求的URL,确认tweet.fields等参数是否正确拼接在查询字符串中,比如添加:
    console.log("请求URL:", endpointUrl + "?" + new URLSearchParams(params).toString());
    
    检查参数是否完整,没有被截断或遗漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 07:27:39