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 ;
}
?>