Introduction
L'obtention des informations d'identification du client est une condition préalable à l'obtention des jetons d'accès, que la majorité des API Brightcove utilisent pour authentifier les demandes.
Pour une explication complète des informations d'identification du client, voir comment fonctionne le 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 effectuées 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 fera l'affaire. Il vous suffit de pouvoir envoyer une requête POST à l'application via 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 cookie lorsque vous vous connectez à Studio. Vous pouvez obtenir ce cookie comme bon vous semble, mais pour vous faciliter la tâche, nous avons créé l'extrait de code JavaScript suivant. Vous pouvez le coller dans la console du développeur lorsque vous êtes connecté à Studio, appuyer sur la touche Retour et un message contenant le BC_TOKEN apparaîtra :
Obtenir l'application d'identification
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 : Créez des informations d'identification client à l'aide 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. 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 API OAuth pour la création d'informations d'identification client est différente de celle pour l'authentification API générale. Le code complet du proxy utilisé ici est indiqué ci-dessous.
<? php
/**
* client-credentials-proxy.php : proxy pour les API RESTful de 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 : POST
*
* @post {string} bc_token - BC_TOKEN avec des autorisations d'administrateur sur tous les comptes pour lesquels des informations d'identification sont demandées
* @post {JSONString} RequestBody - le corps complet de la demande 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 requêtes provenant de https://docs.brightcove.com ou de 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 => tableau (
'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 ;
}
? >