Obtenga un token de acceso

Esta muestra recupera un token de acceso de la API de Brightcove OAuth desde una aplicación web y envía la solicitud a través de un proxy.

Introducción

Obtener tokens de acceso es una operación crucial para la mayoría de los trabajos con las API de Brightcove, ya que la mayoría de ellos usa tokens de acceso para autenticar solicitudes.

Para obtener una explicación completa de los tokens de acceso, consulte cómo funciona el servicio Brightcove OAuth y Obtener tokens de acceso.

Este ejemplo le muestra cómo obtener un token de acceso 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 información 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.

Obtención de credenciales

Para obtener un client_id y client_secret, tendrás que ir a la interfaz de usuario de OAuth y registrar esta aplicación:

Estos eligen los permisos que necesitará para la API que va a utilizar:

Permisos de API
Permisos de API

También puedes obtener tus credenciales a través de CURL o Postman. Consulta:

Si obtiene las credenciales directamente de la API de OAuth, consulte Operaciones de API para solicitudes de credenciales de cliente para los permisos que necesita para diferentes operaciones de API.

Obtener la aplicación de token de acceso

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: Obtenga un token de acceso 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. (Los proxies utilizados por Brightcove Learning Services solo aceptan solicitudes de dominios de Brightcove.) A continuación se muestra una versión del código de proxy sin las restricciones de origen.

    <? php
    / **
     * access-token-proxy.php - proxy para las API RESTful de Brightcove
     * obtiene un token de acceso y lo devuelve
     * Accediendo:
     * (tenga en cuenta que debe * siempre * acceder al proxy a través de HTTPS)
     * Método: PUBLICACIÓN
     *
     * @post {string} client_id: ID de cliente de OAuth2 con permisos suficientes para la solicitud
     * @post {string} client_secret: secreto de cliente de OAuth2 con permisos suficientes para la solicitud
     *
     * @returns {string} $ response: respuesta JSON recibida de la API de OAuth
     * /
    
    
    // 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");
    
    // tenga en cuenta que si está utilizando este proxy para una sola credencial
    // puede codificar la identificación del cliente y el secreto a continuación en lugar de pasarlos
    
    $id_cliente = $_POST["id_cliente"];
    $client_secret = $_POST["client_secret"];
    $auth_string = "{$client_id}:{$client_secret}";
    $solicitud = "https://oauth.brightcove.com/v4/access_token?grant_type=client_credentials";
    $ch = curl_init($solicitud);
    curl_setopt_array ($ ch, array (
            CURLOPT_POST => VERDADERO,
            CURLOPT_RETURNTRANSFER => VERDADERO,
            CURLOPT_SSL_VERIFYPEER => FALSO,
            CURLOPT_USERPWD => $ auth_string,
            CURLOPT_HTTPHEADER => matriz (
                'Tipo de contenido: aplicación / x-www-form-urlencoded',
            )
        ));
    $response = curl_exec($ch);
    curl_close ($ ch);
    
    // Verifica si hay errores
    if ($ respuesta === FALSO) {
        morir (curl_error ($ ch));
        echo 'Ocurrió un error';
    } else {
      echo $ respuesta;
    }
    
    ?>