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

如何基于Twitter API V2与twitteroauth发布带图片的推文?

使用Twitter API V2 + twitteroauth发布带图片的推文

Twitter API V2无法直接在tweets接口附带媒体,必须先通过V1.1的media/upload接口上传媒体文件,获取媒体ID后,再在V2的推文发布接口中引用该ID。以下是完整实现步骤和代码:

实现步骤

  • 切换到V1.1接口上传图片:twitteroauth支持切换API版本,先切换到v1.1完成媒体上传
  • 获取媒体ID:上传成功后从返回结果中提取media_id_string
  • 切换回V2接口发布带图推文:在推文参数中添加媒体ID数组

完整代码

require '../vendor/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;

// 初始化连接
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);

// 1. 切换到V1.1接口,上传图片
$connection->setApiVersion('1.1');
$media = $connection->upload('media/upload', [
    'media' => file_get_contents('/path/to/your/image.jpg') // 替换为你的图片实际路径
]);

// 2. 获取上传后的媒体ID
$mediaId = $media->media_id_string;

// 3. 切换回V2接口,发布带图片的推文
$connection->setApiVersion('2');
$data = [
    'text' => 'Hello world with image!',
    'media' => [
        'media_ids' => [$mediaId]
    ]
];

$content = $connection->post("tweets", $data, true);
var_dump($content);

注意事项

  • 确保你的Twitter开发者账号拥有Read and Write权限,且已开启媒体上传权限
  • 图片需符合Twitter要求:支持JPG、PNG、GIF等格式,单图大小不超过5MB
  • 若上传多张图片,可在media_ids数组中添加多个媒体ID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:07:11