1

ここでグラフ API を使用して、dailymotion にビデオをアップロードしようとしています。

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

読み取りおよび書き込み許可で正常に認証されましたが、以下の API 公開方法を使用してビデオをアップロードしようとした場合: http://www.dailymotion.com/doc/api/graph-api.html#publishingエラーの取得

stdClass オブジェクト ( [エラー] => stdClass オブジェクト ( [コード] => 400 [メッセージ] => `url' パラメータは無効なコンテンツ タイプを返します: text/plain、必ず video/* [タイプ] => invalid_parameter ) )

以下の cURL を使用して API にリクエストを投稿しています。

$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));

この問題を解決するのを手伝ってください。

4

1 に答える 1

1

動画の URL に問題があるようです。動画として認識されていないようです:

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

API を介して配信されるアップロード URL を使用する必要があります。/file/upload に対して HTTP GET を実行してアップロード URL を取得し、ファイル フィールドに動画を含む multipart/form-data content-type を使用して、このアドレスに動画を投稿します。この URL でコードをテストすると、うまくいきました。

ただし、2 つのコメントがあります。なぜ php sdk を使用しないのですか? それはあなたにとってすべてをずっと簡単にします!また、動画を公開するには、タイトルとチャンネルを指定し、データ配列で「公開」を 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 で説明されており、http : //www.dailymotion.com/doc で php sdk を使用したユース ケースを見つけることができます。 /api/use-cases.html

于 2014-05-13T09:06:45.843 に答える