soporte Contactar con Soporte | Estadoestado del sistema del sistema
Contenido de la página

    Crear credenciales de cliente

    Este ejemplo le permite crear credenciales de cliente para una o varias 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 solicitudes.

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

    Este ejemplo muestra cómo obtener credenciales de cliente de una aplicación web. Debido a que la API de OAuth no está habilitada 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 servirá: solo necesita poder enviar una solicitud POST a la aplicación a través de Internet.

    Obtener su BC_TOKEN

    Para obtener una client_id y client_secret a través de la API de OAuth, necesitará una BC_TOKEN para autenticar su 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 pegarla en la consola del desarrollador cuando haya iniciado sesión en Studio, presione return, y aparecerá un mensaje que contiene el BC_TOKEN:

    Aplicación Obtener credenciales

    Código fuente

    Encuentra todo el código asociado a esta muestra en este repositorio de GitHub.

    Aplicación de muestra

    Consulte el ejemplo de API de Pen OAuth: Cree credenciales de cliente mediante Brightcove Learning Services (@rcrooks1969 ) en CodePen.

    Uso del CodePen

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

    • Alterna la visualización real del reproductor haciendo clic en el botón Resultado.
    • Haga clic en los botones HTML/CSS/JS para mostrar 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.
    • Encuentra todo el código asociado a esta muestra en este repositorio de GitHub.

    Código proxy

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

            <?PHP
            /**
             * client-credentials-proxy.php - proxy para las API RESTful de Brightcove
             * obtiene un ID de cliente y secreto de cliente y devuelve toda la respuesta
             * Accediendo a:
             * (tenga en cuenta que debe *siempre* acceder al proxy a través de HTTPS)
             * Método: PUBLICAR
             *
             * @post {string} bc_token - BC_TOKEN con permisos de administrador en todas las cuentas para las que se solicitan credenciales
             * @post {jsonString} requestBody - el cuerpo completo de la solicitud como una cadena JSON
             *
             * @returns {string} $response - respuesta JSON recibida de la API de OAuth
             */
            
            //comprobaciones de seguridad
            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 &&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» :"Sólo las solicitudes de http://docs.brightcove.com o http:solutions.brightcove.com son aceptadas por este proxy "}');
            }
            
            //Habilitación CORS y otros encabezados
            encabezado («Access-Control-Allow-Origin: *»);
            encabezado («Tipo de contenido: application/json»);
            encabezado («X-Content-Type-Options: nosniff»);
            encabezado («X-XSS Protection»);
            
            //obtener datos o morir
            if ($_POST ["requestBody"]) {
                $data = json_decode ($_POST ["requestBody"]);
            } else {
              exit («falta el cuerpo de la solicitud»);
            }
            //obtenemos el tipo de solicitud o el valor predeterminado a POST
            if ($_POST ["RequestType"]) {
                $method = $_POST ["RequestType"];
            } else {
              $method = 'POST';
            }
            //obtener bc_token o morir
            if ($_POST ["bc_token"]) {
                $bc_token = $_POST ["bc_token"];
            } else {
              exit («falta bc_token»);
            }
            
            $request = "https://oauth.brightcove.com/v4/client_credentials «;
            $ch = curl_init ($solicitud);
            curl_setopt_array($ch, array(
                CURLOPT_CUSTOMREQUEST  => $method,
                CURLOPT_RETURNTRANSFER => TRUE,
                CURLOPT_SSL_VERIFYPEER => FALSE,
                CURLOPT_HTTPHEADER     => array(
                    «Tipo de contenido: application/json»,
                    «Autorización: BC_TOKEN {$bc_token}»
                ),
                CURLOPT_POSTFIELDS => json_encode($data)
            ));
            $ respuesta = curl_exec ($ch);
            curl_close($ch);
            
            //Comprobación de errores
            if ($response === FALSE) {
                die (curl_error ($ch));
                exit ('Se ha producido un error al realizar la solicitud');
            } else {
              echo $respuesta;
            }
            
            ?>
            

    Última actualización de la página el 28-09-2020