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

使用Tweepy的search_30_day无返回结果,请求协助排查问题

排查Twitter Premium search_30_day无结果的问题

让我帮你梳理下可能导致search_30_day没有返回结果的几个关键原因:

1. 日期范围完全超出30天搜索的覆盖范围

这大概率是最核心的问题!search_30_day从名字就能看出来,它只能检索最近30天内发布的推文,而你设置的fromDate=202012300000是2020年的日期,远远超出了这个接口的时间范围,自然找不到任何数据。

你可以把fromDate调整为最近30天内的日期(格式是YYYYMMDDHHMM),比如如果今天是2024年5月20日,就设置成202404200000;或者干脆去掉fromDate参数,让接口默认检索最近30天的内容。

2. 地理搜索语法的细节验证

虽然你的point_radius写法看起来大致正确,但Twitter Premium搜索的地理过滤语法有严格要求:

  • 纬度和经度必须是数字格式,半径要明确带单位(仅支持km或mi)
  • 参数之间用空格分隔,不要加逗号

你可以尝试把query调整为更规范的格式(其实你的写法已经符合,但如果还是不行,可以检查是否有多余的空格或符号):

query='point_radius:[60.00 10.00 40km]'

3. 环境名称(environment_name)配置错误

你用的environment_name='dev',需要确认这个环境是否在你的Twitter开发者后台正确创建并绑定了30天搜索的Premium产品:

  • 登录Twitter开发者平台,进入对应项目的「Premium」板块
  • 检查30天搜索环境的名称是否和代码里的一致,拼写错误会导致接口无法定位到你的搜索环境

4. 账号没有Premium API访问权限

普通的免费Twitter开发者账号是无法使用search_30_day这类Premium接口的,你需要确认:

  • 你的账号已经申请并通过了Premium API的访问权限
  • 你的API密钥对关联的项目拥有30天搜索的权限

修正后的示例代码

结合上面的点,调整后的代码大概是这样:

import tweepy

consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''

OAUTH_KEYS = {'consumer_key': consumer_key, 'consumer_secret': consumer_secret, 'access_token_key': access_token, 'access_token_secret': access_token_secret}
auth = tweepy.OAuthHandler(OAUTH_KEYS['consumer_key'], OAUTH_KEYS['consumer_secret'])
api = tweepy.API(auth)

# 调整为最近30天内的日期,或者直接去掉fromDate参数
premiumTweet = api.search_30_day(
    environment_name='dev', 
    query='point_radius:[60.00 10.00 40km]', 
    # fromDate=202404200000,  # 替换为最近30天的日期
    maxResults=100
)

how_many_tweets = 0
for tweet in premiumTweet:
    how_many_tweets += 1
    print(how_many_tweets)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:17:00