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

如何使用Tweepy与Twitter API v2免费版发布带图片的推文?

解决免费版Twitter API v2上传图片发推文的问题

免费版API v2本身没有媒体上传端点,得借助v1.1的/media/upload接口,Tweepy里对应的是API类的media_upload()方法,免费权限支持这个操作,不需要Elevated Access。

修改你的代码如下:

import tweepy
import keys

# 初始化v2的Client(用于发推文)
client = tweepy.Client(
    consumer_key=keys.api_key,
    consumer_secret=keys.api_secret,
    access_token=keys.access_token,
    access_token_secret=keys.access_token_secret
)

# 初始化v1.1的API(用于上传媒体)
auth = tweepy.OAuth1UserHandler(
    keys.api_key,
    keys.api_secret,
    keys.access_token,
    keys.access_token_secret
)
api = tweepy.API(auth)

def tweet(client: tweepy.Client, api: tweepy.API, message: str, media_path=None):
    media_ids = []
    if media_path:
        # 上传图片获取media_id
        media = api.media_upload(filename=media_path)
        media_ids.append(media.media_id_string)
    
    # 带媒体ID发推文
    client.create_tweet(text=message, media_ids=media_ids)
    print("Tweet tweet!")

if __name__ == "__main__":
    my_message = "I love cats and dogs!"
    tweet(client=client, api=api, message=my_message, media_path="pets.png")

关键说明

  • 必须同时初始化Client(v2)和API(v1.1):前者负责创建推文,后者负责上传媒体。
  • media_upload()返回的media_id_string要以列表格式传给create_tweet的media_ids参数。
  • 确保图片是Twitter支持的格式(JPG、PNG、GIF等),单图大小不超过免费版5MB的限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:15:21