php 中使用 Abraham Williams sdk 的 Twitter 1.1 图片上传问题

Twitter 1.1 image upload issue using Abraham Williams sdk in php

我是使用 php sdk 在 Twitter 帐户中发布图片的新手。

我已经试过了,但还没有找到解决办法。

我的密码是

$connection = new TwitterOAuth($twitter_key, $twitter_secret, $token, $secret);

$fileContent = file_get_contents($imageUrl);
$base64   = base64_encode($fileContent);
$fileContent = ('data:' . $mime . ';base64,' . $base64);

 $connection->post("https://upload.twitter.com/1.1/media/upload.json", array("media_data" =>$fileContent));

有人可以帮忙吗?

您没有按照 TwitterOAuth documentation 上传媒体。

$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token, $access_token_secret);
$media1 = $connection->upload('media/upload', ['media' => '/path/to/file/kitten1.jpg']);
$media2 = $connection->upload('media/upload', ['media' => '/path/to/file/kitten2.jpg']);
$parameters = [
    'status' => 'Meow Meow Meow',
    'media_ids' => implode(',', array($media1->media_id_string, $media2->media_id_string)),
];
$result = $connection->post('statuses/update', $parameters);

我找到了问题的解决方案,这有助于我解决上传图片问题。

$url = 'https://upload.twitter.com/1.1/media/upload.json';
$method = 'POST';
$parameters = array('media' => base64_encode(file_get_contents($filePath)), );
$request = OAuthRequest::from_consumer_and_token($connection->consumer, $connection->
token, $method, $url, $parameters);
$request->sign_request($connection->sha1_method, $connection->consumer, $connection->
token);

$response = $connection->http($request->get_normalized_http_url(), $method, $request->
to_postdata());
if ($connection->format === 'json' && $connection->decode_json)
{
    $response = json_decode($response);
    $mediaId[] = $response->media_id_string;
}