Python-Twitter 库从 v2 迁移到 v3 的完整指南
前言
Python-Twitter 是一个功能强大的 Python 库,用于与 Twitter API 进行交互。随着版本 3 的发布,该库进行了多项重要变更,旨在提高一致性、消除潜在问题并添加新功能。本文将详细介绍从 v2 迁移到 v3 时需要注意的所有关键变化。
现有方法的变更
基础 API 变更
twitter.api.Api()
构造函数移除了 shortner
参数,这是为了简化 API 并移除不再需要的功能。
方法参数重命名
多个方法的参数名称进行了调整,主要是为了避免与 Python 内置函数冲突并提高一致性:
CreateFavorite
和DestroyFavorite
:id
→status_id
DestroyBlock
:id
→user_id
DestroyStatus
和GetStatus
:id
→status_id
GetTrendsWoeid
:id
→woeid
PostRetweet
:original_id
→status_id
这些变更使 API 更加一致,减少了开发者的记忆负担。
分页和批量获取改进
Twitter API 的分页机制进行了重大调整:
GetBlocks
不再接受user_id
或screen_name
参数,现在只返回认证用户的屏蔽列表GetFollowers
和GetFriends
移除了count
和cursor
参数,改为使用total_count
控制返回数量- 新增了
GetFollowersPaged
和GetFriendsPaged
方法,返回更结构化的分页数据
用户实体包含默认值变更
include_user_entities
参数现在默认为 True
,这更符合 Twitter API 的实际行为,因为即使不指定该参数,Twitter 也会默认返回用户实体信息。
流 API 改进
GetUserStream
方法的 stall_warning
参数更名为 stall_warnings
,与 Twitter 官方命名保持一致,现在能正确接收停滞警告。
媒体上传增强
PostUpdate
方法新增了媒体相关参数:
media
:支持 URL、本地文件或文件类对象media_additional_owners
:指定可重用媒体的用户 ID 列表media_category
:广告 API 专用参数
废弃的方法
PostMedia 和 PostMultipleMedia
这两个方法已被 Twitter 官方废弃,建议使用增强后的 PostUpdate
方法替代。PostUpdate
现在支持直接上传多个媒体文件(最多4个),功能更加强大。
新增方法
分页相关方法
GetBlocksIDs
:获取认证用户屏蔽的所有用户 IDGetBlocksIDsPaged
:分页获取屏蔽用户 IDGetBlocksPaged
:分页获取屏蔽用户详细信息GetListMembersPaged
:分页获取列表成员GetListsPaged
:分页获取用户列表
这些方法提供了更灵活的数据获取方式,特别适合处理大量数据。
媒体上传方法
-
UploadMediaChunked
:支持大文件分块上传- 可自定义块大小(默认1MB)
- 自动处理媒体类型识别
- 返回上传文件的
media_id
-
UploadMediaSimple
:简单文件上传- 适合小文件
- 只需一次 API 调用
- 返回上传文件的
media_id
迁移建议
- 参数重命名:检查所有调用,更新参数名称
- 分页处理:使用新的分页方法替代旧的分页逻辑
- 媒体上传:迁移到新的上传方法,特别是大文件上传
- 废弃方法:尽快替换
PostMedia
和PostMultipleMedia
调用 - 测试验证:全面测试应用,确保所有功能正常工作
总结
Python-Twitter v3 带来了许多改进,使 API 更加一致和强大。虽然迁移需要一些工作,但这些变更将为开发者提供更好的体验和更强大的功能。遵循本文指南,您可以顺利完成从 v2 到 v3 的迁移。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考