如何通过Twitter API v2监听仅含地理位置信息的推特流推文
错误原因说明
- 第一个报错是权限限制:
has:geo属于高级过滤运算符,仅Twitter API v2的学术研究版、企业版套餐支持,你当前使用的免费基础版套餐不在支持范围内,所以触发无效运算符报错。 - 第二个报错是规则格式限制:即使你有权限使用
has:geo类属性运算符,也不允许将其作为规则里的唯一条件,必须搭配至少一个其他有效过滤条件(比如关键词、语言、用户ID等)使用。
另外你提交的规则JSON中存在多余尾逗号,严格JSON解析场景下也可能触发额外错误。
可行解决方案
方案1:继续使用基础版套餐
- 沿用1%样本流监听方案,请求流时添加请求参数
tweet.fields=geo和expansions=geo.place_id,拿到返回结果后自行筛选携带geo字段的推文即可,不需要调整套餐。 - 如果有明确的业务关键词过滤需求,可以先在规则里配置你需要的关键词/话题/用户过滤条件,拿到符合条件的推文后再在后端自行筛选携带地理位置信息的内容,不需要用到
has:geo运算符。
方案2:升级套餐获取更高采集效率
如果你需要采集全量带地理位置的推文,升级到学术研究版或企业版套餐后,调整规则为属性运算符搭配其他有效条件即可,示例规则如下:
[ { "value": "lang:en has:geo", "tag": "contains geo-info" } ]
该规则将返回所有携带地理位置信息的英文推文,符合API规则要求,不会触发报错。
内容的提问来源于stack exchange,提问作者Obada Khalili
相关产品推荐
相关产品推荐

