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

使用Twitter API v2获取最新推文/转推及转推完整文本的问题

调整方案

你现在用Twitter API v2拉取转推只能拿到截断文本,是因为API默认不会直接返回转推关联的原推文完整内容,需要调整请求参数并处理关联数据即可解决:

1. 调整请求参数

需要给client.get_users_tweets新增以下2个参数:

  • expansions:设置为referenced_tweets.id,用来告诉API同步拉取转推关联的原推文实体
  • tweet_fields:除了已有的text,新增referenced_tweets字段,用来标识当前推文是否为转推,以及对应的原推文ID
    调整后的请求代码如下:
tweets = client.get_users_tweets(
    id='xxxxxxxxxxx',
    tweet_fields=['text', 'referenced_tweets'],
    expansions=['referenced_tweets.id']
)

2. 处理返回的关联数据

API返回的关联原推文数据不会直接放在tweets.data里,而是存储在tweets.includes['tweets']中,你需要自行匹配关联获取完整文本,示例处理代码如下:

# 先把所有关联的原推文按ID存成字典方便查找
ref_tweets = {t.id: t for t in tweets.includes.get('tweets', [])}

data = []
for tweet in tweets.data:
    # 检查当前推文是不是转推
    if hasattr(tweet, 'referenced_tweets'):
        for ref in tweet.referenced_tweets:
            # 类型为retweeted就是普通转推,quoted是带评论的转推
            if ref.type in ['retweeted', 'quoted']:
                # 拿到对应的原推文完整文本
                full_text = ref_tweets[ref.id].text
                # 你可以按需拼接或者直接用原文本
                processed_tweet = f"RT @{ref_tweets[ref.id].author_id}: {full_text}"
                data.append(processed_tweet)
                break
    else:
        # 普通原创推文直接加
        data.append(tweet.text)

print(data[0])

如果需要获取原推文作者的用户名等信息,可以再新增expansions参数referenced_tweets.id.author_id,同时补充user_fields参数获取对应用户信息即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:45:02