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

使用Twitter gem通过slug获取Twitter List时报NotFound错误如何解决

问题核心原因

你遇到的404报错是两个认知偏差导致的:

  • 你传入的emilyslist是Twitter用户的账号ID,不是列表的slug。Twitter列表是归属于特定用户的二级资源,完整的公开列表URL格式为https://twitter.com/[列表所有者用户名]/lists/[列表slug],你访问的https://twitter.com/emilyslist是用户个人主页,不是列表页。
  • twitter gem的list方法不能仅传入slug参数,默认情况下仅传slug会查询你当前认证账号名下的对应列表,你自己的账号下没有对应slug的列表自然返回不存在。

修复方案

1. 调整方法参数

需要同时传入列表所有者的用户名/用户ID、列表slug两个参数,修正后的方法如下:

# 初始化客户端的代码无需调整
def retrieve_a_list(owner_identifier, list_slug)
  @list_info = @client.list(owner_identifier, list_slug)
  return @list_info
end

2. 正确调用方法

如果你不知道目标用户有哪些公开列表,可以先拉取该用户的全部公开列表获取对应的slug:

# 获取@emilyslist账号的所有公开列表
user_lists = @client.lists('emilyslist')
# 遍历打印列表名称和对应slug
user_lists.each do |list|
  puts "列表名称:#{list.name},slug:#{list.slug}"
end

拿到slug后再调用列表查询方法即可,示例:

# 示例:拉取@emilyslist账号下slug为endorsed-2024的列表
target_list = retrieve_a_list('emilyslist', 'endorsed-2024')
# 查看列表属性
puts target_list.member_count # 列表成员数
puts target_list.description # 列表描述

额外注意事项

如果目标列表是私有列表,你当前认证的账号需要获得列表所有者的访问权限才能正常拉取,否则依然会返回404错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:48:01