Ошибка при попытке загрузить видео на dailymotion с помощью Graph API

Я пытаюсь загрузить видео на dailymotion с помощью графического API здесь:

http://www.dailymotion.com/doc/api/graph-api.html

Аутентификация прошла успешно с разрешением на чтение и запись, но при попытке загрузить видео с помощью метода публикации API ниже: http://www.dailymotion.com/doc/api/graph-api.html#publishing Получение ошибок

stdClass Object ( [error] => stdClass Object ( [code] => 400 [message] => Параметр `url' возвращает недопустимый тип контента: text/plain, должен быть video/* [type] => invalid_parameter ))

Я отправляю запрос в API, используя ниже cURL:

$fields = '';
   $data = array(
       "access_token" => $token,
       "url" => "https://www.somesite.com/demo/dailymotion/X.mp4"
    );
   $url = "https://api.dailymotion.com/me/videos";
   foreach($data as $key => $value) { 
      $fields .= $key . '=' . $value . '&'; 
   }
   rtrim($fields, '&');

   $post = curl_init();

   curl_setopt($post, CURLOPT_URL, $url);
   curl_setopt($post, CURLOPT_POST, count($data));
   curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
   curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);

   $result = curl_exec($post);

   curl_close($post);
   print_r(json_decode($result));

Кто-нибудь, пожалуйста, помогите мне решить эту проблему.


person Huzoor Bux    schedule 10.05.2014    source источник


Ответы (1)


Я думаю, у вас проблема с URL-адресом вашего видео, похоже, оно не распознано как видео:

invalid content type: text/plain, must be video/* [type] 

Вы должны использовать URL-адрес загрузки, полученный через API: выполните HTTP GET для /file/upload, чтобы получить URL-адрес загрузки, и опубликуйте свое видео на этот адрес, используя тип содержимого multipart/form-data с видео в поле файла. При тестировании вашего кода с этим URL-адресом это сработало.

У меня есть два комментария: почему бы вам не использовать php sdk? Это сделает все намного проще для вас! Также, для того, чтобы ваше видео было опубликовано, вы должны указать для него заголовок и канал, а также установить для параметра «published» значение true в вашем массиве данных:

$data = array(
   "access_token" => $token,
   "channel" => "news",
   "title" => "my title",
   "published"=> True,
   "url" => $videourl
);

Это описано по адресу: http://www.dailymotion.com/doc/api/getting-started.html#publishing-videos, и вы можете найти пример использования php sdk по адресу http://www.dailymotion.com/doc/api/use-cases..html

person Tilly    schedule 13.05.2014