Crear credenciales de cliente

Esta muestra 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 solicitudes.

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

Este ejemplo le muestra cómo obtener credenciales de cliente desde 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 la 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.

Obteniendo tu BC_TOKEN

Conseguir un client_id y client_secret a través de la API de OAuth, necesitará un BC_TOKEN para autenticar su solicitud. Su BC_TOKEN se configura como una cookie cuando inicia sesión en Studio. Puede obtener esa cookie de la forma que desee, pero para que sea más fácil, hemos creado el siguiente fragmento de JavaScript: puede pegarlo en la consola del desarrollador cuando haya iniciado sesión en Studio, presione devolver , y aparecerá un mensaje que contiene BC_TOKEN:

Obtener la aplicación de credenciales

Código fuente

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

Aplicación de muestra

Ver la pluma Ejemplo de API de OAuth: Crear credenciales de cliente por los servicios de aprendizaje de Brightcove (@rcrooks1969 ) en CódigoPen.

Uso de CodePen

Estos son algunos consejos para utilizar eficazmente el CodePen anterior:

  • Cambie la visualización real del reproductor haciendo clic en el Resultado botón.
  • Haga clic en el HTML / CSS / JS botones para mostrar UNO de los tipos de código.
  • Hacer clic Editar en CodePen en la esquina superior derecha para bifurcar este CodePen en su propia cuenta.
  • Encuentra todo el código asociado a este ejemplo en este repositorio de 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 muestra, porque la autenticación para el método de API de OAuth para crear credenciales de cliente es diferente a la de autenticación de API general. A continuación, se muestra el código completo para el proxy utilizado aquí.

        <? php
        / **
         * client-credentials-proxy.php: proxy para las API RESTful de Brightcove
         * obtiene una identificación de cliente y un secreto de cliente y devuelve la respuesta completa
         * Accediendo:
         * (tenga en cuenta que debe * siempre * acceder al proxy a través de HTTPS)
         * Método: PUBLICACIÓN
         *
         * @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
         * /
        
        // revisiones 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 && 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":"Este proxy solo acepta solicitudes de https://docs.brightcove.com o https:solutions.brightcove.com"}');
        }
        
        // Habilitación de CORS y otros encabezados
        encabezado ("Acceso-Control-Permitir-Origen: *");
        encabezado ("Tipo de contenido: aplicación / json");
        encabezado ("X-Content-Type-Options: nosniff");
        encabezado ("Protección X-XSS");
        
        // obtener datos o morir
        if ($ _POST ["requestBody"]) {
            $data = json_decode($_POST["requestBody"]);
        } else {
          exit ("falta el cuerpo de la solicitud");
        }
        // obtener el tipo de solicitud o por defecto 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");
        }
        
        $solicitud = "https://oauth.brightcove.com/v4/client_credentials";
        $ch = curl_init($solicitud);
        curl_setopt_array ($ ch, array (
            CURLOPT_CUSTOMREQUEST => $ método,
            CURLOPT_RETURNTRANSFER => VERDADERO,
            CURLOPT_SSL_VERIFYPEER => FALSO,
            CURLOPT_HTTPHEADER => matriz (
                'Tipo de contenido: aplicación / json',
                "Autorización: BC_TOKEN {$ bc_token} "
            ),
            CURLOPT_POSTFIELDS => json_encode ($ datos)
        ));
        $response = curl_exec($ch);
        curl_close ($ ch);
        
        // Verifica si hay errores
        if ($ respuesta === FALSO) {
            morir (curl_error ($ ch));
            exit ('Se produjo un error al realizar la solicitud');
        } else {
          echo $ respuesta;
        }
        
        ?>