ActionScript を使用した Media API の基礎

Product
Video Cloud
対象となる役割
開発者
バージョン
Brightcove 5
モジュール
Media API
エディション
すべて

このトピックでは、ActionScript から Media API のクエリを行うための基本的な手順を示します。このトピックの読者は、プログラミング言語の ActionScript に習熟しており、Flash が ActionScript で HTTP 要求をする際に抵触する、クロスドメインに関するセキュリティ上の制約について理解していることを前提としています。Brightcove のサーバーには、クロスドメインの呼び出しを実現するためのポリシ ファイルがあります。続きを読む前に、以下のトピックも確認してください。

セキュリティのベスト プラクティス。ActionScript による Media API へのアクセスには、いくつかの重要な欠点やリスクがあります。その中でも重要なのは、トークンのセキュリティです。トークンへアクセスしたハッカーによって、知らないうちにコンテンツのライブラリへアクセスされたり、場合によってはコンテンツを再生されたりする可能性があります。ActionScript では、トークンは SWF にコンパイルされますが、ハッカーがソースコードに逆コンパイルして抽出することも考えられます。詳細については、このトークン セキュリティのベストプラクティスについてのトピックを参照してください。

SEO のベストプラクティス。ActionScript で要求を行うと、ページにメタデータを埋め込むことができるという Media API による SEO のメリットを生かせなくなります。検索エンジンのクローラは Flash アプリケーションを実行しません。詳細については、このMedia API による SEO のベスト プラクティスについてのトピックを参照してください。

要求の作成および結果のパース

Flash で HTTP 要求を行うには、ActionScript 2 の LoadVars クラスか、ActionScript 3 の URLLoader クラスを使用するのがもっとも簡単です。ActionScript が要求の操作と応答の処理を行い、結果が準備できると通知してくれます。AS2 の例を示します。

// 要求を作成
var url:String = "http://api.brightcove.co.jp/services/library?command=find_all_videos
  &video_fields=id,name,referenceId&token=BMkaixIhjbhxfa5ATEGTzXm9CrmR8urXRDr9o7bbc64.";
var lv:LoadVars = new LoadVars();
 
lv.onLoad = function (success:Boolean) {
	// 結果を処理
}
 
lv.load(url);

AS3 の例を示します。

var loader:URLLoader;
var url:String = "http://api.brightcove.co.jp/services/library?command=find_all_videos
  &video_fields=id,name,referenceId&token=BMkaixIhjbhxfa5ATEGTzXm9CrmR8urXRDr9o7bbc64.";
var request:URLRequest = new URLRequest(url);
 
loader = new URLLoader();
loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
 
try {
	loader.load(request);
}
catch (error:SecurityError)
{
	trace("A SecurityError has occurred.");
}
 
function errorHandler(evt:Event) {
// 結果をパース
}
function loaderCompleteHandler(evt:Event) {
	// 結果をパース
}

いずれのケースも、Media API メソッドの呼び出し方に注目してください。読み取りメソッドの呼び出し形式は、以下のようになっています。

<URL>?command=<method_name>&<arguments>=<values>&token=<API_token>

すべての Brightcove Media 読み込み API 呼び出しの URL は http://api.brightcove.co.jp/services/library です。すべての Brightcove Media 書き込み API 呼び出しの URL は http://api.brightcove.co.jp/services/post です。この例では、メソッドは find_all_videos です。クエリ パラメータで渡しているのは、find_all_videos で返されるオブジェクトに取り込みたいフィールドを指定する video_fields 引数と、API トークンの値です。

結果をパースする

ActionScript 3 は、JSON をネイティブ サポートしません。JSON を処理する比較的標準的な方法は、as3core ライブラリを使用する方法です。このライブラリは、Github でダウンロードできます。as3corelib の使用例は、AS3 で Flex から Media API にアクセスするを参照してください。

タグ
ActionScript