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

时间:2018-02-09 07:46:23

标签: twitter

我正在创建一个用户可以点击的Twitter分享按钮,但我也想将图像附加到推文上。

我正在使用API​​将图像上传到Twitter,因此可以使用媒体ID。

有没有办法从此ID获取URL,以便我可以将其附加到Twitter Intent链接?

或者,我是否可以仅使用此媒体ID与API发布经过身份验证的用户的推文?

我正在尝试将Twitter托管的图片附加到“共享”按钮,以便任何人都可以将其发布到他们的Twitter Feed中

1 个答案:

答案 0 :(得分:2)

在将图像附加到推文之前,您需要先将图像上传到twitter。我认为您已经使用端点媒体/上传

进行此操作

参考:

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

完成此操作后,发出另一个POST请求到端点状态/更新,参数'status'和'media_ids'。 Twitter期望以逗号分隔的media_ids列表。您已在媒体/上传端点返回的对象中使用此功能。

参考:

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

上述调用中返回的对象具有在属性实体下上传的每个媒体的URL。

这是我使用PHP和abrahamoauth库的方式的摘录。 $ connection是推特连接对象。

$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;