支持 聯繫支持 | 系統狀況 系統狀態

獲取訪問令牌

本示例從Brightcove檢索訪問令牌 OAuth API 從網絡應用中,通過代理髮送請求。

簡介

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

有關訪問令牌的完整說明,請參見 Brightcove OAuth服務的工作方式獲取訪問令牌.

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

獲取憑證

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

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

API權限
API權限

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

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

獲取訪問令牌應用

在此找到與此樣本相關的所有代碼 GitHub存儲庫.

見筆 OAuth API 樣本:獲取訪問令牌 通過Brightcove學習服務(@ rcrooks1969)上 CodePen.

使用CodePen

以下是有效使用上述CodePen的一些技巧:

  • 切換 player 通過點擊 結果 按鈕。
  • 點擊 HTML / CSS / JS 按鈕顯示一種代碼類型。
  • 點擊 在CodePen上編輯 在右上角將此CodePen分支到您自己的帳戶中。
  • 在此找到與此樣本相關的所有代碼 GitHub存儲庫.

代理代碼

為了在此頁面上構建自己的示例應用程序版本,您必須創建並託管自己的代理。 (Brightcove Learning Services使用的代理僅接受來自Brightcove域的請求。)下面顯示了不受原始限制的代理代碼版本。

    <?php
    /**
     * access-token-proxy.php - proxy for Brightcove RESTful APIs
     * gets an access token and returns it
     * Accessing:
     *         (note you should *always* access the proxy via HTTPS)
     *     Method: POST
     *
     * @post {string} client_id - OAuth2 client id with sufficient permissions for the request
     * @post {string} client_secret - OAuth2 client secret with sufficient permissions for the request
     *
     * @returns {string} $response - JSON response received from the OAuth API
     */
    
    
    // CORS enablement and other headers
    header("Access-Control-Allow-Origin: *");
    header("Content-type: application/json");
    header("X-Content-Type-Options: nosniff");
    header("X-XSS-Protection");
    
    // note that if you are using this proxy for a single credential
    // you can just hardcode the client id and secret below instead of passing them
    
    $client_id     = $_POST["client_id"];
    $client_secret = $_POST["client_secret"];
    $auth_string   = "{$client_id}:{$client_secret}";
    $request       = "https://oauth.brightcove.com/v4/access_token?grant_type=client_credentials";
    $ch            = curl_init($request);
    curl_setopt_array($ch, array(
            CURLOPT_POST           => TRUE,
            CURLOPT_RETURNTRANSFER => TRUE,
            CURLOPT_SSL_VERIFYPEER => FALSE,
            CURLOPT_USERPWD        => $auth_string,
            CURLOPT_HTTPHEADER     => array(
                'Content-type: application/x-www-form-urlencoded',
            )
        ));
    $response = curl_exec($ch);
    curl_close($ch);
    
    // Check for errors
    if ($response === FALSE) {
        die(curl_error($ch));
        echo 'An error occurred';
    } else {
      echo $response;
    }
    
    ?>
    

頁面最後更新於12年2020月XNUMX日