assistance Contacter le support | Étatétat du système du système
Contenu de la page

    Créer des informations d'identification client

    Cet exemple vous permet de créer des informations d'identification client pour un ou plusieurs comptes, en leur attribuant les autorisations API que vous choisissez.

    Introduction

    L'obtention des informations d'identification client est une condition préalable unique pour obtenir des jetons d'accès, que la majorité des API Brightcove utilisent pour authentifier les requêtes.

    Pour une explication complète des informations d'identification client, consultez le fonctionnement du service Brightcove OAuth.

    Cet exemple vous montre comment obtenir les informations d'identification client à partir d'une application Web. Étant donné que l'API OAuth n'est pas compatible CORS et que les requêtes doivent être faites du côté serveur, l'application envoie les informations nécessaires à 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 le fera - vous avez juste besoin d'être en mesure d'envoyer une requête POST à l'application sur Internet.

    Obtenir votre BC_TOKEN

    Pour obtenir un client_id et client_secret via l'API OAuth, vous aurez besoin d'un BC_TOKEN pour authentifier votre demande. Votre BC_TOKEN est défini comme un cookie lorsque vous vous connectez à Studio. Vous pouvez obtenir ce cookie comme vous le souhaitez, mais pour le rendre plus facile, nous avons créé l'extrait JavaScript suivant - vous pouvez le coller dans la console du développeur lorsque vous êtes connecté à Studio, appuyez sur retour, et une invite apparaîtra contenant le BC_TOKEN :

    Obtenir les informations d'identification

    Code source

    Trouvez tout le code associé à cet exemple dans ce dépôt GitHub.

    Exemple d'application

    Voir l' exemple d'API Pen OAuth : Créer les informations d'identification du client par 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 joueur en cliquant sur le bouton Résultat .
    • Cliquez sur les boutons HTML/CSS/JS pour afficher L'UN des types de code.
    • Cliquez sur Modifier sur CodePen dans le coin supérieur droit pour incorporer ce CodePen dans votre propre compte.
    • Trouvez tout le code associé à cet exemple dans ce dépôt GitHub.

    Code proxy

    Afin de construire votre propre version de l'exemple d'application sur cette page, vous devez créer et héberger votre propre proxy. Ce proxy est quelque peu différent du proxy utilisé pour la plupart de nos exemples d'applications, car l'authentification pour la méthode de l'API OAuth pour créer des informations d'identification client est différente de celle de l'authentification API générale. Le code complet pour le proxy utilisé ici est illustré ci-dessous.

            <?php
            /**
             * client-credentials-proxy.php - proxy pour les API RESTful Brightcove
             * obtient un identifiant client et un secret client et retourne la réponse entière
             * Accès :
             * (notez que vous devriez *toujours* accéder au proxy via HTTPS)
             * Méthode : POSTE
             *
             * @post {string} bc_token - BC_TOKEN avec les autorisations d'administration sur tous les comptes pour lesquels les informations d'identification sont demandées
             * @post {jsonString} requestBody - le corps complet de la requête sous forme de chaîne JSON
             *
             * @returns {string} $response - Réponse JSON reçue de l'API OAuth
             */
            
            //contrôles de sécurité
            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') == faux &strpos ($_REFERER ['HTTP_REFERER'] ER '],' master-7rqtwti-6sglloa4yrkti.us.platform.sh ') == false) {
                exit ('{"ERROR » :"Seules les demandes de http://docs.brightcove.com ou http:solutions.brightcove.com sont acceptées par ce proxy "}') ;
            }
            
            //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 ») ;
            
            //Obtenir des données ou mourir
            if ($_POST["requestBody"]) {
                $data = json_decode($_POST["requestBody"]);
            } else {
              sortie (« corps de requête manquant ») ;
            }
            //récupère le type de requête ou par défaut à POST
            if ($_POST["requestType"]) {
                $method = $_POST["requestType"];
            } else {
              $method = 'POST' ;
            }
            //Obtenir bc_token ou mourir
            if ($_POST ["bc_token"]) {
                $bc_token = $_POST ["bc_token"] ;
            } else {
              exit (« bc_token manquant ») ;
            }
            
            $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',
                    « Autorisation : BC_JETON {$bc_token} »
                ),
                CURLOPT_POSTFIELDS => json_encode($data)
            ))) ;
            $response = curl_exec($ch);
            curl_close ($ch) ;
            
            //Vérification des erreurs
            if ($response === FALSE) {
                die (curl_error ($ch)) ;
                exit ('Une erreur s'est produite lors de l'exécution de la demande') ;
            } else {
              echo $ réponse ;
            }
            
            ?>