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

如何通过Twitter API获取推文的浏览量及点赞数?

如何通过Twitter API获取推文的浏览量(View counts)?

Twitter已为推文添加了浏览量功能,我希望通过指定Tweet ID获取该数据。目前我有一段可获取推文点赞数的代码,但修改后尝试获取view_count字段时,API返回结果里没有这个字段,官方文档中也找不到相关说明,求解决方案。

原获取点赞数的代码:

const BEARER_TOKEN = 'BEARER_TOKEN';

// Returns the number of likes on the Tweet with the given tweetID.
async function getTweetLikes(tweetID) {
  const response = await fetch(
    `https://api.twitter.com/1.1/statuses/show/${tweetID}.json`,
    {
      method: 'GET',
      headers: {
        Authorization: `Bearer ${BEARER_TOKEN}`,
        'Content-Type': 'application/json'
      }
    }
  );

  const tweet = await response.json();
  return tweet.favorite_count;
}

// Get the Tweet ID of the current page
const tweetID = window.location.pathname.split('/')[3];
console.log('tweetID', tweetID);

getTweetLikes(tweetID).then((likes) => {
  console.log(`Tweet ${tweetID} has ${likes} likes.`);
});

我原本想修改成同时获取点赞数和浏览量,示例逻辑如下,但无法获取view_count:

const tweet = await response.json();
return [tweet.favorite_count, tweet.view_count];

...

getTweetLikesAndViews(tweetID).then((result) => {
  console.log(`Tweet ${tweetID} has ${result[0]} likes and ${result[1]} views.`);
});

解决方案

1. 切换到Twitter API v2

view_count字段仅在Twitter API v2的推文端点中返回,旧的v1.1接口statuses/show不支持该字段,必须使用v2的tweets端点。

2. 修改后的完整代码

const BEARER_TOKEN = 'BEARER_TOKEN';

// 获取推文的点赞数和浏览量
async function getTweetLikesAndViews(tweetID) {
  const response = await fetch(
    `https://api.twitter.com/2/tweets/${tweetID}?tweet.fields=public_metrics`,
    {
      method: 'GET',
      headers: {
        Authorization: `Bearer ${BEARER_TOKEN}`
      }
    }
  );

  const data = await response.json();
  // 从public_metrics中提取目标数据
  const likes = data.data.public_metrics.like_count;
  const views = data.data.public_metrics.view_count;
  return [likes, views];
}

// 获取当前页面的Tweet ID
const tweetID = window.location.pathname.split('/')[3];
console.log('tweetID', tweetID);

getTweetLikesAndViews(tweetID).then(([likes, views]) => {
  console.log(`Tweet ${tweetID} has ${likes} likes and ${views} views.`);
});

关键说明

  • 必须显式指定tweet.fields=public_metrics参数,API才会返回包含view_count、like_count的public_metrics对象。
  • v2接口的点赞数对应public_metrics.like_count(替代v1.1的favorite_count),浏览量对应public_metrics.view_count。
  • 确保你的Bearer Token拥有访问Twitter API v2的权限,若之前使用的是v1.1令牌,需确认权限范围或重新生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:35:26