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

如何使用Tweepy API V2发布包含文字和多张图片的推文?

Tweepy V2 发布带多张图片及图片描述的推文方案

实现逻辑

  • Tweepy V2 原生 Client 暂未提供媒体上传能力,需要配合 Twitter V1.1 版本的 API 完成图片上传操作
  • 图片上传完成后会返回唯一的 media_id,将所有图片的 media_id 组成列表传入 V2 发推接口即可实现带图推文发布
  • 图片描述(alt 文本)可在图片上传完成后通过接口单独设置

完整实现代码

import tweepy

# 替换为你自己的开发者密钥
ACCESS_KEY = 'XXXXXXXXXXXXXXXXXXX'
ACCESS_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'
CONSUMER_KEY = 'XXXXXXXXXXXXXXXXXXXXXX'
CONSUMER_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXX'
BEARER_TOKEN = 'XXXXXXXXXXXXXXXXXXX'

# 初始化V2 Client(你原有代码的部分)
api_v2 = tweepy.Client(
    bearer_token=BEARER_TOKEN,
    access_token=ACCESS_KEY,
    access_token_secret=ACCESS_SECRET,
    consumer_key=CONSUMER_KEY,
    consumer_secret=CONSUMER_SECRET
)

# 新增:初始化V1.1 API用于图片上传
auth = tweepy.OAuth1UserHandler(
    consumer_key=CONSUMER_KEY,
    consumer_secret=CONSUMER_SECRET,
    access_token=ACCESS_KEY,
    access_token_secret=ACCESS_SECRET
)
api_v1 = tweepy.API(auth)

# 配置要上传的图片路径和对应描述
image_config = [
    {"path": "第一张图片本地路径.jpg", "desc": "第一张图片的描述内容"},
    {"path": "第二张图片本地路径.jpg", "desc": "第二张图片的描述内容"},
    {"path": "第三张图片本地路径.jpg", "desc": "第三张图片的描述内容"}
]

media_ids = []
for img in image_config:
    # 上传图片
    media = api_v1.media_upload(filename=img["path"])
    # 设置图片描述
    api_v1.create_media_metadata(media_id=media.media_id, alt_text=img["desc"])
    media_ids.append(str(media.media_id))

# 发布带3张图片的推文
response = api_v2.create_tweet(
    text="你要发布的推文正文内容",
    media_ids=media_ids
)

# 打印发布结果
print(f"推文发布成功,推文ID:{response.data['id']}")

注意事项

  • 单张静态图片大小不能超过5MB,支持JPG、PNG、WEBP格式
  • 单条推文最多可上传4张静态图片
  • 单张图片的描述最多支持1000字符
  • 需确保你的Twitter开发者账号已经申请了读写权限,否则会出现上传或发布失败的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:24:01