У меня проблема при попытке загрузить фотографию в твиттер. Я использую twitteroauth.php для аутентификации, и у меня нет проблем с отправкой твита через API или получением данных. Но когда я хочу загрузить фотографию, я получаю следующую ошибку: {«errors»: [{«message»: «Could not authenticate you», «code»: 32}]}
Это мой код:
<?php
require_once('../include/initialize.php');
require_once('twitter/twitteroauth.php');
if(isset($_GET['access_token']) && $_GET['access_token'] != ''){
$accesstoken = $_GET['access_token'];
}else{
$accesstoken = TWITTER_ACCESS_TOKEN;
}
if(isset($_GET['access_token_secret']) && $_GET['access_token_secret'] != ''){
$accesstokensecret = $_GET['access_token_secret'];
}else{
$accesstokensecret = TWITTER_ACCESS_TOKEN_SECRET;
}
$consumerkey = TWITTER_CONSUMER_KEY;
$consumersecret = TWITTER_CONSUMER_SECRET;
$twitter = new TwitterOAuth($consumerkey, $consumersecret, $accesstoken, $accesstokensecret);
$url = $_POST['url'];
$filename = $_POST['filename'];
// function to replace file_get_contents()
function file_get_the_contents($url) {
$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
return $file_contents;
}
// original script updated with new function
$imgget = file_get_the_contents($url);
$twitter_api = "https://upload.twitter.com/1.1/media/upload.json?media=".$imgget."&type=photo";
$twitter_img = $twitter->post($twitter_api);
echo json_encode($twitter_img);
Кто-нибудь может мне помочь с этим вопросом. Я осматривал форумы, но все остальные проблемы, которые я обнаружил, относятся к statuses / update_with_media, которая устарела.
Благодарю.
Задача ещё не решена.
Других решений пока нет …