如何基于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
相关产品推荐
相关产品推荐

