如何使用Tweepy模块转发指定Twitter账号的最新推文
Tweepy实现转发指定Twitter账号最新推文方案
1. api.retweet() 入参说明
- 仅需要传入1个参数:目标推文的ID(支持整数或字符串格式的数字ID)
- 调用成功后会直接执行转发操作,无额外必填参数
2. 拉取指定账号最新推文ID方法
你可以通过Tweepy的user_timeline接口拉取目标账号的公开推文,只需指定拉取数量为1即可拿到最新一条推文的ID:
- 首先通过
api.get_user()接口,传入目标账号的用户名(不带@前缀)获取用户的唯一ID - 调用
api.user_timeline()传入用户ID,设置count=1,即可拉取到该账号最新的1条公开推文 - 可通过
exclude_replies=True、include_rts=False参数过滤掉回复内容和该账号转发的其他内容,只保留账号原创推文
3. 完整可运行代码示例
import tweepy # 替换为你的Twitter开发者平台申请的密钥 API_KEY = "你的API Key" API_SECRET = "你的API Secret" ACCESS_TOKEN = "你的Access Token" ACCESS_TOKEN_SECRET = "你的Access Token Secret" # 身份认证 auth = tweepy.OAuthHandler(API_KEY, API_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) # 初始化API实例,开启自动等待限流避免请求报错 api = tweepy.API(auth, wait_on_rate_limit=True) # 目标账号的用户名,不需要加@ target_username = "目标账号用户名" try: # 获取目标用户的ID target_user = api.get_user(screen_name=target_username) # 拉取最新1条原创推文 latest_tweets = api.user_timeline( user_id=target_user.id, count=1, exclude_replies=True, include_rts=False, tweet_mode="extended" ) if latest_tweets: latest_tweet_id = latest_tweets[0].id print(f"获取到最新推文ID:{latest_tweet_id}") # 执行转发 api.retweet(latest_tweet_id) print("转发操作执行成功") else: print("该账号暂无符合条件的公开推文") except Exception as e: print(f"操作出错:{str(e)}")
4. 注意事项
- 新增
tweet_mode="extended"参数可获取完整的推文内容,避免默认接口截断长推文 - 确保你的Twitter开发者账号已经开通了读写权限,否则会触发权限类报错
- 如果你使用的是Twitter API v2版本,对应方法名调整为
client.retweet()和get_users_tweets(),入参逻辑和v1.1版本基本一致
内容的提问来源于stack exchange,提问作者onyxkeytab
相关产品推荐
相关产品推荐

