取得存取權杖

此示例從 Web 應用程序從 Brightcove OAuth API 中檢索訪問令牌,並通過代理發送請求。

簡介

對於大多數Brightcove API而言,獲取訪問令牌是一項至關重要的操作,因為其中大多數使用訪問令牌對請求進行身份驗證。

有關訪問令牌的完整說明,請參閱Brightcove OAuth 服務的工作原理獲取訪問令牌 .

此示例向您展示如何從Web應用程序獲取訪問令牌。由於OAuth API未啟用CORS,並且必須從服務器端發出請求,因此該應用會將信息發送到代理,代理隨後會發出api請求並將響應發送回客戶端。這裡的代理是用 PHP 編寫的,但任何服務器端語言都可以-您只需要能夠通過互聯網向應用程序發送 POST 請求。

取得認證

得到一個client_idclient_secret,您需要轉到 OAuth UI 並註冊此應用程序:

這些選擇您將要使用的API所需的權限:

API 權限
API 權限

您也可以通過 CURL 或郵遞員獲取憑據-請參閱:

如果您直接從 OAuth API 獲取憑據,請參閱客戶端憑證請求的 API 操作獲取不同 API 操作所需的權限。

獲取訪問令牌應用

原始碼

在此找到與此示例相關的所有代碼GitHub 倉庫 .

範例應用程式

看筆OAuth API 示例:獲取訪問令牌通過 Brightcove 學習服務( @rcrooks1969) 在代碼筆 .

使用編碼器

以下是一些有效使用上述 CodePen 的提示:

  • 按一下「結果」按鈕,切換播放器的實際顯示。
  • 點擊HTML/CSS/JS按鈕顯示其中一種代碼類型。
  • 點擊在 CodePen 上編輯在右上角將此 CodePen 分叉到您自己的帳戶中。
  • 在此找到與此示例相關的所有代碼GitHub 倉庫 .

代理代理代碼

為了建立您自己的版本此頁面上的範例應用程式,您必須建立並裝載您自己的 Proxy。(布萊特灣學習服務所使用的代理只接受來自布萊特灣域的請求。)沒有原始限制的代理代碼版本如下所示。

    <?php
    /**
     * access-token-proxy.php-Brightcove RESTful API的代理
     *獲取訪問令牌並返回
     * 存取:
     *(請注意,您應該 * 總是 * 通過 HTTPS 訪問代理)
     * 方法:開機自檢
     *
     * @post {string} client_id-具有足夠許可權的OAuth2客戶端ID
     * @post {string} client_secret-OAuth2客戶機密,具有足夠的請求權限
     *
     * @returns {字符串} $ 響應-從 OAuth API 接收到的 JSON 響應
     */
    
    
    //CORS 啟用和其他標題
    header(“ Access-Control-Allow-Origin:*”);
    頭(「內容類型:應用程序 /json」);
    頭(「X 內容類型-選項:nosniff」);
    標頭(「XXSS-保護」);
    
    //請注意,如果您將此代理用於單個憑證
    //您只需在下面硬編碼客戶端ID和密碼,而不用傳遞它們
    
    $ client_id = $ _POST [“ client_id”];
    $ client_secret = $ _POST [“ client_secret”];
    $ 驗證字符串 =「{$ 客戶端}:{$ 客戶端 _ 秘密}」;
    請求 = "https://oauth.brightcove.com/v4/access_token?grant_type=client_credentials「;
    $ 查詢 = 初始化($ 請求);
    curl_setopt_array($ ch,array(
            CURLOPT_POST => TRUE,
            CURLOPT_RETURNTRANSFER => TRUE,
            CURLOPT_SSL_VERIFYPEER =>否,
            CURLOPT_USERPWD => $ auth_string,
            CURLOPT_HTTPHEADER =>數組(
                '內容類型:應用程序 /x-www 形式的 URL 代碼',
            )
        );
    $ 響應 = 捲曲($ 查詢);
    curl_close($ ch);
    
    //檢查錯誤
    if($ response === FALSE){
        die(curl_error($ ch));
        回顯“發生錯誤”;
    }其他{
      echo $ response;
    }
    
    ?>