入門
クライアント資格情報の取得は、アクセストークンを取得するための1回限りの前提条件であり、BrightcoveAPIの大部分がリクエストの認証に使用します。
クライアント資格情報の詳細については、を参照してください。 BrightcoveOAuthサービスの仕組み。
このサンプルは、Webアプリからクライアント資格情報を取得する方法を示しています。OAuth APIはCORSに対応しておらず、サーバー側からリクエストを行う必要があるため、アプリは必要な情報をプロキシに送信します。プロキシはAPIリクエストを作成し、応答をクライアントに送り返します。ここでのプロキシはPHPで記述されていますが、サーバー側のどの言語でもかまいません。インターネット経由でアプリにPOSTリクエストを送信できる必要があります。
BC_TOKENを入手する
取得するにはclient_id
そしてclient_secret
OAuth APIを介して、BC_TOKEN
リクエストを認証します。Studioにログインすると、BC_TOKENがCookieとして設定されます。そのCookieは好きな方法で取得できますが、簡単にするために、次のJavaScriptスニペットを作成しました。Studioにログインしたときに開発者コンソールに貼り付けることができます。戻る、およびBC_TOKENを含むプロンプトが表示されます。
資格情報アプリを取得する
ソースコード
このサンプルに関連付けられているすべてのコードを、この GitHub リポジトリで検索します。
サンプルアプリ
ペンを見るOAuth APIサンプル:クライアント資格情報を作成する Brightcove Learning Services( @ rcrooks1969) オンCodePen。
CodePen を使用する
上記のCodePenを効果的に使用するためのヒントは次のとおりです。
- [ 結果 ] ボタンをクリックして、プレーヤーの実際の表示を切り替えます。
- HTML/CSS/JS ボタンをクリックして、コードタイプの 1 つを表示します。
- 右上隅にある CodePen の編集をクリックして、この CodePen を自分のアカウントにフォークします。
- このサンプルに関連付けられているすべてのコードを、この GitHub リポジトリで検索します。
プロキシコード
このページのサンプルアプリを独自のバージョンで作成するには、独自のプロキシを作成してホストする必要があります。クライアント資格情報を作成するためのOAuthAPIメソッドの認証は、一般的なAPI認証の認証とは異なるため、このプロキシは、ほとんどのサンプルアプリで使用されているプロキシとは多少異なります。ここで使用されるプロキシの完全なコードを以下に示します。
<?php / ** * client-credentials-proxy.php --Brightcove RESTful APIのプロキシ*クライアントIDとクライアントシークレットを取得し、応答全体を返します*アクセス:*(HTTPS経由で*常に*プロキシにアクセスする必要があることに注意してください) * 方法:POST * * @post {string} bc_token-クレデンシャルが要求されるすべてのアカウントの管理者権限を持つBC_TOKEN * @post {JSONstring} requestBody-JSON文字列としての完全なリクエスト本文** @returns {string} $ response-OAuthAPIから受信したJSON応答* / //セキュリティチェックif(strpos($ _ SERVER ['HTTP_REFERER']、 'solutions.brightcove.com')== false && strpos($ _ SERVER ['HTTP_REFERER']、 'ondemand.brightcovelearning.com')== false && strpos($ _ SERVER ['HTTP_REFERER']、 'video.brightcovelearning.com')== false && strpos($ _ SERVER ['HTTP_REFERER']、 's.codepen.io ')== false && strpos($ _ SERVER [' HTTP_REFERER ']、' fiddle.jshell.net ')== false && strpos($ _ SERVER [' HTTP_REFERER ']、' players.brightcove.net ')== false && strpos($ _ SERVER ['HTTP_REFERER']、 'support.brightcove.com')== false && strpos($ _ SERVER ['HTTP_REFERER']、 'master-7rqtwti-6sglloa4yrkti.us.platform.sh')== false){ exit('{"ERROR":"Only requests from http://docs.brightcove.com or http:solutions.brightcove.com are accepted by this proxy"} '); } // CORSの有効化とその他のヘッダーheader( "Access-Control-Allow-Origin:*"); header( "Content-type:application / json"); header( "X-Content-Type-Options:nosniff"); header( "X-XSS-Protection"); //データを取得するか死ぬif($ _POST ["requestBody"]){ $data = json_decode($_POST["requestBody"]); }そうしないと{ exit("request body missing"); } //リクエストタイプを取得するか、デフォルトでPOSTに設定if($ _POST ["requestType"]){ $method = $_POST["requestType"]; }そうしないと{ $method = 'POST'; } // bc_tokenを取得するか、死ぬif($ _POST ["bc_token"]){ $bc_token = $_POST["bc_token"]; }そうしないと{ exit("bc_token missing"); } $ request = "https://oauth.brightcove.com/v4/client_credentials"; $ 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'、 "認証:BC_TOKEN {$bc_token} ")、CURLOPT_POSTFIELDS => json_encode($ data))); $ response = curl_exec($ ch); curl_close($ ch); //エラーをチェックif($ response === FALSE){ die(curl_error($ch)); exit('An error occurred on making the request'); }そうしないと{ echo $response; }?>