Twitter API 版本 2 图片上传错误

问题描述 投票:0回答:2

我正在使用名为 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
)

期望它能按照他们的文档工作,但它不起作用。

php twitter twitter-oauth twitter-api-v2
2个回答
0
投票

更改方式:

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


-1
投票

我知道这是一个老问题,但迟到总比不到好,对吧?

在代码的开头,创建连接后,而不是使用以下内容:

$connection->setApiVersion('2');

...试试这个...

$connection->setApiVersion('1.1');
.

其余部分保持原样。

我不知道为什么会这样,但确实如此。我猜有错误。

© www.soinside.com 2019 - 2024. All rights reserved.