使用 twitteroauth 上传图片的格式是什么?

Joe*_*oey 2 twitter oauth image-uploading twitter-oauth

来源: https : //github.com/abraham/twitteroauth/pull/137

在上述链接中,Github 用户 Robhaswell 对亚伯拉罕的 TwitterOAuth 代码进行了调整,并添加了upload上传图片的功能。这是对框架的一个很好的补充,但是,新代码没有附加适当的文档或示例,所以我在使用该函数时遇到了一些麻烦:

$image = 'weather.jpg';

$response = $tweet->upload('statuses/update_with_media', array(
    'status' => 'This is a test', 
    'media[]' => "@{$image};type=image/jpeg;filename={$image}")
);
Run Code Online (Sandbox Code Playgroud)

而weather.jpg 与具有上述代码的文件位于同一文件夹中。

旁注:代码将通过 cron 执行,并将服务器上始终存在的图像上传到 twitter。只是为了澄清用户不必先上传他们的图像,然后通过此脚本将它们提交到 Twitter。

任何人都可以指出我正确的方向吗?

编辑:我知道这个功能不是原始版本的一部分,我已经根据 Robhaswell 的调整更新了 twitteroauth 和 OAuth 代码。

dav*_*278 5

由于这个问题仍然相关,但答案现在已经过时了,我将继续使用更新的答案更新这个问题。

statuses/update_with_media已被推特弃用。https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-update_with_media.html

这是我的工作代码,用于上传和发布带有图片的状态。

$twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token, $access_token_secret);
$content = $twitter->get("account/verify_credentials");
$tweet = "My tweet";
$imageMedia = $twitter->upload('media/upload', array('media' => '/path/to/image/image_name.png'));
$parameters = array(
    "status" => $tweet,
    "media_ids" => $imageMedia->media_id_string);

$statuses = $twitter->post("statuses/update", $parameters);
Run Code Online (Sandbox Code Playgroud)

我只是想我会在这里发布这个,因为我在寻找答案时偶然发现了这个问题。