Obtenez un jeton d'accès

Cet exemple récupère un jeton d'accès de l'API Brightcove OAuth à partir d'une application Web, en envoyant la demande via un proxy.

Introduction

L'obtention de jetons d'accès est une opération cruciale pour la plupart des travaux avec les API Brightcove, car la majorité d'entre elles utilisent des jetons d'accès pour authentifier les demandes.

Pour une explication complète des jetons d'accès, voir comment fonctionne le service Brightcove OAuth et Obtenir des jetons d'accès.

Cet exemple vous montre comment obtenir un jeton d'accès à partir d'une application Web. Étant donné que l'API OAuth n'est pas compatible CORS et que les requêtes doivent être effectuées côté serveur, l'application envoie des informations à un proxy, qui effectue ensuite la requête API et renvoie la réponse au client. Le proxy ici est écrit en PHP, mais n'importe quel langage côté serveur fera l'affaire. Il vous suffit de pouvoir envoyer une requête POST à l'application via Internet.

Obtention d'informations

Pour obtenir un client_id et client_secret, vous devez accéder à l'interface utilisateur OAuth et enregistrer cette application :

Ceux-ci choisissent les autorisations dont vous aurez besoin pour l'API que vous allez utiliser :

Autorisations API
Autorisations API

Vous pouvez également obtenir vos informations d'identification via CURL ou Postman, voir :

Si vous obtenez des informations d'identification directement à partir de l'API OAuth, consultez Opérations d'API pour les demandes d'informations d'identification client pour les autorisations dont vous avez besoin pour différentes opérations d'API.

Obtenir l'application de jeton d'accès

Code source

Retrouvez tout le code associé à cet exemple dans ce référentiel GitHub.

Exemple d'application

Voir le stylo Exemple d'API OAuth : Obtenez un jeton d'accès auprès de Brightcove Learning Services (@rcrooks1969) sur CodePen.

Utilisation du CodePen

Voici quelques conseils pour utiliser efficacement le CodePen ci-dessus :

  • Basculez l'affichage réel du lecteur en cliquant sur le bouton Résultat bouton.
  • Clique le HTML/CSS/JS pour afficher UN des types de code.
  • Cliquez sur Modifier sur CodePen dans le coin supérieur droit pour insérer ce CodePen dans votre propre compte.
  • Retrouvez tout le code associé à cet exemple dans ce référentiel GitHub.

Code proxy

Afin de créer votre propre version de l'exemple d'application sur cette page, vous devez créer et héberger votre propre proxy. (Les proxy utilisés par Brightcove Learning Services n'acceptent que les demandes des domaines Brightcove.) Une version du code proxy sans les restrictions d'origine est présentée ci-dessous.

    <? php
    /**
     * access-token-proxy.php : proxy pour les API RESTful de Brightcove
     * obtient un jeton d'accès et le renvoie
     * Accès :
     * (notez que vous devriez *toujours* accéder au proxy via HTTPS)
     * Méthode : POST
     *
     * @post {string} client_id - ID client OAuth2 avec des autorisations suffisantes pour la demande
     * @post {string} client_secret - Secret client OAuth2 avec des autorisations suffisantes pour la demande
     *
     * @returns {string} $response - Réponse JSON reçue de l'API OAuth
     */
    
    
    //Activation CORS et autres en-têtes
    en-tête (« Access-Control-Allow-Origin : * ») ;
    en-tête (« Content-type : application/json ») ;
    (« X-Content-Type-Options : nosniff ») ;
    en-tête (« X-XSS-protection ») ;
    
    //notez que si vous utilisez ce proxy pour une seule identification
    //vous pouvez simplement coder en dur l'identifiant client et le secret ci-dessous au lieu de les transmettre
    
    $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 => VRAI,
            CURLOPT_RETURNTRANSFER => TRUE,
            CURLOPT_SSL_VERIFYPEER => FALSE,
            CURLOPT_USERPWD => $auth_string,
            CURLOPT_HTTPHEADER => tableau (
                « Type de contenu : application/x-www-form-urlencoded',
            )
        ))) ;
    $response = curl_exec ($ch) ;
    curl_close ($ch) ;
    
    //Vérification des erreurs
    if ($response === FALSE) {
        die (curl_error ($ch)) ;
        echo 'Une erreur s'est produite » ;
    } else {
      echo $ réponse ;
    }
    
    ? >