サポート問い合わせ先| システムステータス
ページコンテンツ

    ライブAPIサンプル:ライブジョブの作成

    このサンプルでは、簡単なライブジョブの作成方法を学習します。

    入門

    この例では、3 つの出力レンディションを持つ単純な Live ジョブを作成します。1080p、720p、480p。

    なぜならライブAPI CORSに対応しておらず、サーバー側のアプリからアクセスする必要がある場合、APIリクエストはPHPで記述された単純なプロキシを介して送信されます。これは、任意のサーバーサイド言語で再現できます。JavaScript によって送信されたリクエストパラメーターを収集し、API にリクエストを送信し、応答を JavaScript に返すことです。すべてのコードは、以下のコードセクションにあります

    ライブジョブアプリの作成

    このサンプルに関連付けられているすべてのコードを、この GitHub リポジトリで検索します

    ペンLive API のサンプルを参照してください。ライブジョブを作成する Brightcove Learning Services( @ rcrooks1969) オンCodePen

    CodePen を使用する

    上記のCodePenを効果的に使用するためのヒントは次のとおりです。

    • [ 結果 ] ボタンをクリックして、プレーヤーの実際の表示を切り替えます。
    • HTML/CSS/JS ボタンをクリックして、コードタイプの 1 つを表示します。
    • 右上隅にある CodePen の編集をクリックして、この CodePen を自分のアカウントにフォークします。
    • このサンプルに関連付けられているすべてのコードを、この GitHub リポジトリで検索します

    プロキシコード

    このサンプルでは、CodePen (および関連する GitHub レポ) にあるコードに加えて、API リクエストを作成し、アプリに応答を返すプロキシが必要です。このアプリでは、PHPを使用し、コードを以下に示します。プロキシを構築するには、任意のサーバー側言語を使用できます。

    プロキシサンプルコード
    	<?php / ** * live-proxy.php --Brightcove Live APIのプロキシ*リクエストを行い、応答を返します*アクセス:*(HTTPS経由で*常に*プロキシにアクセスする必要があることに注意してください)*メソッド:POST * * @post {string} url-APIリクエストのURL * @post {string} [requestType = GET]-リクエストのHTTPメソッド* @ post {string} [requestBody]-書き込みリクエストで送信されるJSONデータ* @ post {string} apiKey-ライブAPIキー** @returns {string} $ response-APIから受信したJSON応答* / // CORSイネーブルメントおよびその他のヘッダーheader( "Access-Control-Allow-Origin:*"); header( "Content-type:application / json"); header( "X-Content-Type-Options:nosniff"); header( "X-XSS-Protection"); $ requestData = json_decode(file_get_contents( 'php:// input')); // API呼び出しを設定します// APIキーを取得します$ apikey = $ requestData-> apiKey; //リクエストタイプを取得するか、デフォルトでGETになりますif($ requestData-> requestType){ $method = $requestData->requestType; }そうしないと{ $method = "GET"; } //より多くのセキュリティチェック$ needle = '。io'; $ endapi = strpos($ requestData-> url、$ needle)+ 3; $ nextChar = substr($ requestData-> url、$ endapi、1); if(strpos($ requestData-> url、 'api.bcovlive.io')== false){ exit('{"ERROR":"Only requests to Brightcove Live APIs are accepted by this proxy"} '); } else if($ nextChar!== '/'  && $ nextChar!== '?'){ exit('{"ERROR": "There was a problem with your API request - please check the URL"} '); } //フォームデータからURLと承認情報を取得します$ request = $ requestData-> url; // httpリクエストを送信するif($ requestData-> requestBody){ $ch = curl_init($request); curl_setopt_array($ch, array( CURLOPT_CUSTOMREQUEST => $method, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_SSL_VERIFYPEER => FALSE, CURLOPT_HTTPHEADER => array( 'Content-type: application/json', "X-API-KEY: {$apikey} "、)、CURLOPT_POSTFIELDS => $ requestData-> requestBody)); $ response = curl_exec($ ch); curl_close($ ch);} else { $ch = curl_init($request); curl_setopt_array($ch, array( CURLOPT_CUSTOMREQUEST => $method, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_SSL_VERIFYPEER => FALSE, CURLOPT_HTTPHEADER => array( 'Content-type: application/json', "X-API-KEY: {$apikey} "、))); $ response = curl_exec($ ch); curl_close($ ch);} //エラーをチェックするif($ response === FALSE){ $logEntry = "\nError:\n". "\n".date("Y-m-d H:i:s")." UTC \n" .$response; $logFileLocation = "log.txt"; $fileHandle = fopen($logFileLocation, 'a') or die("-1"); fwrite($fileHandle, $logEntry); fclose($fileHandle); echo '{"ERROR": "There was a problem with your API call"} '+ die(curl_error($ ch)); } //応答をデコードします// $ responseData = json_decode($ response、TRUE); // AJAX呼び出し元に応答を返します$ responseDecoded = json_decode($ response); // if(!isset($ responseDecoded)){ // $response = '{null} '; //} echo $ response; ?>

    ページの最終更新日22 Sep 2021