我正在使用名为 Twitteroauth 的 Twitter 库, 并遵循他们关于图片发布的说明。因此,当我尝试发布图像时,它会抛出错误,因为媒体未上传。正常的文本发布按预期工作正常,我所做的一切都检查了很多次,但它不起作用。那么有人可以解决这个问题吗?
图片上传不起作用:
require "vendor/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
$connection = new TwitterOAuth('p8kebRtLTYZo4Lyc8p17lcUGZ', 'KUmxOxfgfISQPxM64kqA9YTEibC28s2tNjcqBNu5YpY1wTuJNU', '1236013086688989184-c5gHPKryY5zJTJp03ILU1N31atayJp', 'yvunJthcPlBRXnUaBwfbIpyv6q5i7jJX3TzxjLK6Mq5On');
$connection->setApiVersion('2');
$image = [];
$media = $connection->upload('media/upload', ['media' => 'C:\xampp\htdocs\twitter_oauth\S3169002871756923800.jpg']);
array_push($image, $media->media_id_string);
$data = [
'text' => 'Hello world',
'media'=> ['media_ids' => $image]
];
$content = $connection->post("tweets", $data, true);
echo "<pre>";
print_r($content);
exit;
由于图片上传不起作用而出现错误。可能是什么问题?请帮忙。
Notice: Trying to get property 'media_id_string' of non-object in C:\xampp\htdocs\twitter_oauth\index.php on line 28
stdClass Object
(
[errors] => Array
(
[0] => stdClass Object
(
[parameters] => stdClass Object
(
[$.media.media_ids[0]] => Array
(
[0] => null
)
)
[message] => $.media.media_ids[0]: null found, string expected
)
)
[title] => Invalid Request
[detail] => One or more parameters to your request was invalid.
[type] => https://api.twitter.com/2/problems/invalid-request
)
期望它能按照他们的文档工作,但它不起作用。
更改方式:
$connection->setApiVersion('1.1');
$media = $connection->upload('media/upload', ['media' => 'C:\xampp\htdocs witter_oauth\S3169002871756923800.jpg']);
array_push($image, $media->media_id_string);
$connection->setApiVersion('2');
我知道这是一个老问题,但迟到总比不到好,对吧?
在代码的开头,创建连接后,而不是使用以下内容:
$connection->setApiVersion('2');
...试试这个...
$connection->setApiVersion('1.1');
.
其余部分保持原样。
我不知道为什么会这样,但确实如此。我猜有错误。