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

能否使用Tweepy访问Twitter Premium API?

能否用Tweepy访问Twitter高级API服务?

当然可以!你完全不用被迫切换到简陋的searchtweets库——Tweepy从较新的版本(v4+)开始就支持访问Twitter API的Premium/Enterprise级服务,而且用起来和你熟悉的常规API调用逻辑一致,只是需要注意认证方式和端点的区别。下面是具体的实现步骤和示例:

1. 先确保你用的是最新版Tweepy

首先升级到最新版本,避免旧版本缺少高级API的支持:

pip install --upgrade tweepy

2. 认证方式:区分OAuth1和Bearer Token

Twitter Premium服务的认证和免费版略有不同,主要分两种场景:

  • 如果调用v1.1的高级搜索端点(比如30天归档、全归档搜索):需要用OAuth1.0a认证(也就是consumer key/secret + access token/secret),这和你可能熟悉的免费版v1.1认证一致。
  • 如果调用v2的全归档搜索端点:可以直接用Bearer Token,更简洁,适合不需要用户上下文的搜索场景。

3. 代码示例

示例1:用Tweepy v1.1调用30天/全归档高级搜索

这个方法适用于Premium的30天归档或全归档搜索,需要你在Twitter开发者平台创建对应的环境标签(比如你创建的30天环境叫my-30day-env):

import tweepy

# 替换为你的OAuth1凭据
consumer_key = "你的Consumer Key"
consumer_secret = "你的Consumer Secret"
access_token = "你的Access Token"
access_token_secret = "你的Access Token Secret"

# 初始化认证和API实例
auth = tweepy.OAuth1UserHandler(consumer_key, consumer_secret, access_token, access_token_secret)
api = tweepy.API(auth)

# 调用30天归档搜索,替换YOUR_ENV_LABEL为你的环境标签
# query用Twitter高级搜索语法,比如"from:Twitter since:2023-01-01 has:media"
results = api.search_30_day(
    label="YOUR_ENV_LABEL",
    query="你的搜索关键词/语法",
    maxResults=100  # 每次请求最多返回100条结果
)

# 遍历处理结果
for tweet in results:
    print(f"发布时间: {tweet.created_at} | 内容: {tweet.text}")

# 如果是全归档搜索,替换为search_full_archive方法:
# results = api.search_full_archive(label="YOUR_FULLARCHIVE_ENV", query="你的搜索语法")

示例2:用Tweepy v2调用全归档高级搜索

如果你更倾向于用Twitter API v2(推荐,因为v2是未来的主流),可以用Tweepy的Client类,用Bearer Token认证:

import tweepy

# 替换为你的Bearer Token
bearer_token = "你的Bearer Token"

# 初始化Client
client = tweepy.Client(bearer_token=bearer_token)

# 调用全归档搜索,需要你的Premium套餐包含全归档权限
response = client.search_all_tweets(
    query="你的高级搜索语法",
    max_results=100,
    # 可以指定需要返回的字段,比如创建时间、公开指标等
    tweet_fields=["created_at", "public_metrics", "author_id"]
)

# 处理返回结果
if response.data:
    for tweet in response.data:
        print(f"发布时间: {tweet.created_at} | 作者ID: {tweet.author_id} | 内容: {tweet.text}")
# 处理分页(如果结果超过100条)
if response.meta.get('next_token'):
    next_token = response.meta['next_token']
    # 继续调用client.search_all_tweets,加上pagination_token=next_token

4. 关键注意事项

  • 确保你的Twitter开发者账号已经订阅了Premium套餐,并且在平台上创建了对应的搜索环境(30天或全归档),环境标签要和代码里的label参数一致。
  • 高级搜索的查询语法支持更多复杂操作符,比如时间范围since:YYYY-MM-DD until:YYYY-MM-DD、用户筛选from:username、媒体筛选has:media等,具体可以参考Twitter官方的高级搜索语法文档。
  • 如果遇到权限报错,检查你的凭据是否有访问对应Premium端点的权限,或者是否已经正确激活了Premium环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:58:40