soporte Contactar con asistencia técnica | estado del sistema Estado del Sistema
Contenido de la página

    Crear credenciales de cliente

    Este ejemplo le permite crear credenciales de cliente para una o más cuentas, asignándoles los permisos de API que elija.

    Introducción

    Obtener credenciales de cliente es un requisito previo único para obtener tokens de acceso, que la mayoría de las API de Brightcove utilizan para autenticar las solicitudes.

    Para obtener una explicación completa de las credenciales del cliente, consulte Cómo funciona el servicio Brightcove OAuth.

    Esta muestra le muestra cómo obtener credenciales de cliente desde una aplicación web. Porque el OAuth API no está habilitado para CORS y las solicitudes deben realizarse desde el lado del servidor, la aplicación envía la información necesaria a un proxy, que luego realiza la solicitud de API y envía la respuesta al cliente. El proxy aquí está escrito en PHP, pero cualquier lenguaje del lado del servidor funcionará, solo necesita poder enviar una solicitud POST a la aplicación a través de Internet.

    Cómo obtener su BC_TOKEN

    Conseguir un client_id y client_secret mediante el OAuth API, Se necesita un BC_TOKEN para autenticar tu solicitud Su BC_TOKEN se establece como una cookie cuando inicia sesión en Studio. Puede obtener esa cookie de la manera que desee, pero para hacerlo más fácil, hemos creado el siguiente fragmento de JavaScript: puede pegarlo en la consola de desarrollador cuando haya iniciado sesión en Studio, presione retornoy aparecerá un mensaje que contiene BC_TOKEN:

    Obtener la aplicación de credenciales

    Código fuente

    Encuentre todo el código asociado con esta muestra en este Repositorio GitHub.

    Aplicación de ejemplo

    Vea la pluma OAuth API Ejemplo: Crear credenciales de cliente por Brightcove Learning Services (@rcrooks1969) Sobre CodePen.

    Usando el CodePen

    Aquí hay algunos consejos para usar efectivamente el CodePen anterior:

    • Alternar la visualización real de la player haciendo clic en Resultado .
    • Haga clic en el HTML / CSS / JS botones para visualizar UNO de los tipos de código.
    • Haga clic en Editar en CodePen en la esquina superior derecha para bifurcar este CodePen en su propia cuenta.
    • Encuentre todo el código asociado con esta muestra en este Repositorio GitHub.

    Código proxy

    Para crear su propia versión de la aplicación de muestra en esta página, debe crear y alojar su propio proxy. Este proxy es algo diferente al proxy utilizado para la mayoría de nuestras aplicaciones de ejemplo, porque la autenticación para el OAuth API El método para crear credenciales de cliente es diferente al de la autenticación de API general. El código completo para el proxy utilizado aquí se muestra a continuación.

            <?php
            /**
             * client-credentials-proxy.php - proxy for Brightcove RESTful APIs
             * gets a client id and client secret and returns the whole response
             * Accessing:
             *         (note you should *always* access the proxy via HTTPS)
             *     Method: POST
             *
             * @post {string} bc_token - BC_TOKEN with admin permissions on all accounts that credentials are requested for
             * @post {JSONstring} requestBody - the full request body as a JSON string
             *
             * @returns {string} $response - JSON response received from the OAuth API
             */
            
            // security checks
            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 enablement and other headers
            header("Access-Control-Allow-Origin: *");
            header("Content-type: application/json");
            header("X-Content-Type-Options: nosniff");
            header("X-XSS-Protection");
            
            // get data or die
            if ($_POST["requestBody"]) {
                $data = json_decode($_POST["requestBody"]);
            } else {
              exit("request body missing");
            }
            // get request type or default to POST
            if ($_POST["requestType"]) {
                $method = $_POST["requestType"];
            } else {
              $method = 'POST';
            }
            // get bc_token or die
            if ($_POST["bc_token"]) {
                $bc_token = $_POST["bc_token"];
            } else {
              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',
                    "Authorization: BC_TOKEN {$bc_token}"
                ),
                CURLOPT_POSTFIELDS => json_encode($data)
            ));
            $response = curl_exec($ch);
            curl_close($ch);
            
            // Check for errors
            if ($response === FALSE) {
                die(curl_error($ch));
                exit('An error occurred on making the request');
            } else {
              echo $response;
            }
            
            ?>
            

    Página actualizada por última vez el 13 de agosto de 2020