Twitter - 使用API上传图片并获取URL

3
我正在创建一个Twitter分享按钮,用户可以点击它,但我也想将一张图片附加到推文中。
我正在使用API将图像上传到Twitter,因此有可用的媒体ID。
有没有办法从这个ID获取URL,以便我可以将其附加到Twitter意图链接上?
还是我只能使用此媒体ID与API为经过身份验证的用户发布推文?
我正在尝试将Twitter托管的图像附加到分享按钮上,以便任何人都可以将其发布到他们的Twitter动态中。
1个回答

4

在您将图像附加到推文之前,您需要先将图像上传到 Twitter。我认为您已经使用端点 media/upload 完成了这一操作。

参考资料:

https://developer.twitter.com/en/docs/media/upload-media/api-reference/post-media-upload

一旦完成此操作,向端点statuses/update发出另一个带有参数'status'和'media_ids'的POST请求。Twitter期望逗号分隔的media_ids列表。您已经在由media/upload端点返回的对象中拥有此列表。
参考:

https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-update

在上述调用中返回的对象在属性实体下具有每个上传媒体的URL。
这是我使用PHP和abrahamoauth库的摘录。$connection是Twitter连接对象。
$media = $connection->upload('media/upload', array('media' => $_FILES["tweet_image_file"]["tmp_name"]));
$parameters = array(
                'status' => '',
                'media_ids' => implode(',', array($media->media_id_string)),
            );

$result = $connection->post('statuses/update', $parameters);
//$image_url = $result->entities->media[0]->media_url; //stopped working from July 2015
$image_url = $result->entities->media[0]->url;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接