загрузка медиа в твиттер API

0

Я пытаюсь загрузить медиа в 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, и любой другой тип запросов, похоже, работает, например, для получения временной шкалы пользователей.

Я также использую libary - 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
    ));
  • 0
    эй @wazzaday, тебе удалось заставить это работать? Я использую ту же библиотеку, и я получаю ошибку авторизации при попытке опубликовать изображение. Если это просто текст статуса, все работает нормально.
  • 0
    к сожалению нет - похоже, библиотека не поддерживает метод загрузки из-за того, что запрос cURL происходит из-под колпака. Мне пришлось использовать отдельную библиотеку, которая работает очень хорошо - github.com/abraham/twitteroauth - следуя документации, приведу рабочий пример загрузки медиафайлов.
Показать ещё 1 комментарий
Теги:
twitter
oauth

1 ответ

1

Как говорят документы - изображение должно быть закодированными байтами base64 изображения, а не URL-адресом изображения.

  • 0
    Документы указывают либо base64, либо URL
  • 0
    Не уверен, где ты это читаешь? Я вижу только base64: передаваемое изображение должно быть необработанным двоичным кодом изображения или двоичным кодом, закодированным в base64, нет необходимости каким-либо другим образом кодировать или экранировать содержимое, если Content-Type установлен соответствующим образом (в случае сомнений: «application / octet- ручей"). Поддерживаемые форматы изображений: PNG, JPG и GIF. Анимированные GIF-файлы теперь поддерживаются.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню