Я пытаюсь загрузить медиа в Twitter через API, но получаю сообщения об ошибках
HTTP request failed! HTTP/1.1 400 Bad Request
Вот мой звонок
$image = 'http://4.bp.blogspot.com/-JOqxgp-ZWe0/U3BtyEQlEiI/AAAAAAAAOfg/Doq6Q2MwIKA/s1600/google-logo-874x288.png';
$media_ids = $twitterService->request('https://upload.twitter.com/1.1/media/upload.json', 'POST', array(
'media' => $image
));
Я выполняю аутентификацию с помощью oauth, и любой другой тип запроса, например, работает, например, получение графика времени пользователя.
Я также использую библиотеку — https://github.com/Lusitanian/PHPoAuthLib — который добавляет для меня такие вещи, как знак Oauth. Есть идеи?
РЕДАКТИРОВАТЬ:
Я также попытался сделать такой же запрос с изображением base64 следующим образом:
$path = '../uploads/0PQ4j0yfMl1420641234.jpg';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
$media_ids = $twitterService->request('https://upload.twitter.com/1.1/media/upload.json', 'POST', array(
'media_data' => $base64
));
и захватывая необработанное изображение
$image = file_get_contents($path);
$media_ids = $twitterService->request('https://upload.twitter.com/1.1/media/upload.json', 'POST', array(
'media' => $image
));
Как документы скажем — изображение должно быть в кодировке base64 байта изображения, а не в URL к изображению.
Других решений пока нет …