Support Kontakt Support | Systemstatus Systemstatus
Seiteninhalt

    Erstellen Sie Clientanmeldeinformationen

    In diesem Beispiel können Sie Clientanmeldeinformationen für ein oder mehrere Konten erstellen und ihnen die von Ihnen ausgewählten API-Berechtigungen zuweisen.

    Einführung

    Das Abrufen von Client-Anmeldeinformationen ist eine einmalige Voraussetzung für das Abrufen von Zugriffstoken, die von den meisten Brightcove-APIs zur Authentifizierung von Anforderungen verwendet werden.

    Eine vollständige Erläuterung der Client-Anmeldeinformationen finden Sie unter Funktionsweise des Brightcove OAuth-Dienstes.

    In diesem Beispiel wird gezeigt, wie Clientanmeldeinformationen aus einer Webanwendung abgerufen werden. Weil der OAuth API ist nicht CORS-fähig und Anfragen müssen serverseitig gestellt werden, die App sendet notwendige Informationen an einen Proxy, der dann die API-Anfrage stellt und die Antwort zurück an den Client sendet. Der Proxy hier ist in PHP geschrieben, aber jede serverseitige Sprache reicht aus - Sie müssen lediglich eine POST-Anfrage über das Internet an die App senden können.

    Holen Sie sich Ihre BC_TOKEN

    Um eine zu bekommen client_id und client_secret über das OAuth API, Müssen Sie ein BC_TOKEN um Ihre Anfrage zu authentifizieren. Ihr BC_TOKEN wird als ein Cookie festgelegt, wenn Sie sich bei Studio anmelden. Sie können diesen Cookie nach Belieben verwenden, aber um es einfacher zu machen, haben wir das folgende JavaScript-Snippet erstellt - Sie können es in die Entwicklerkonsole einfügen, wenn Sie in Studio angemeldet sind, drücken Sie Rückkehrund eine Eingabeaufforderung mit dem BC_TOKEN erscheint:

    Anmeldedaten-App abrufen

    Quellcode

    Hier finden Sie den gesamten mit diesem Beispiel verbundenen Code GitHub-Repository.

    Beispiel-App

    Sieh den Stift OAuth API Beispiel: Create Client Credentials von Brightcove Learning Services (@ rcrooks1969) Auf CodePen.

    Verwenden des CodePen

    Hier sind einige Tipps, um den oben genannten CodePen effektiv zu nutzen:

    • Schalten Sie die tatsächliche Anzeige des um player durch Klicken auf Das Ergebnis .
    • Klicken Sie auf die HTML / CSS / JS Schaltflächen, um einen der Codetypen anzuzeigen.
    • Eine detaillierte Auf CodePen bearbeiten in der oberen rechten Ecke, um diesen CodePen in Ihr eigenes Konto einzugeben.
    • Hier finden Sie den gesamten mit diesem Beispiel verbundenen Code GitHub-Repository.

    Proxy-Code

    Um Ihre eigene Version der Beispiel-App auf dieser Seite zu erstellen, müssen Sie einen eigenen Proxy erstellen und hosten. Dieser Proxy unterscheidet sich etwas vom Proxy, der für die meisten unserer Beispiel-Apps verwendet wird, da die Authentifizierung für die OAuth API Die Methode zum Erstellen von Clientanmeldeinformationen unterscheidet sich von der allgemeinen API-Authentifizierung. Der vollständige Code für den hier verwendeten Proxy wird unten angezeigt.

            <?php
            /**
             * client-credentials-proxy.php - proxy for Brightcove RESTful APIs
             * gets a client id and client secret and returns the whole response
             * Accessing:
             *         (note you should *always* access the proxy via HTTPS)
             *     Method: POST
             *
             * @post {string} bc_token - BC_TOKEN with admin permissions on all accounts that credentials are requested for
             * @post {JSONstring} requestBody - the full request body as a JSON string
             *
             * @returns {string} $response - JSON response received from the OAuth API
             */
            
            // security checks
            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') == false && strpos($_SERVER['HTTP_REFERER'], 'master-7rqtwti-6sglloa4yrkti.us.platform.sh') == false) {
                exit('{"ERROR":"Only requests from http://docs.brightcove.com or http:solutions.brightcove.com are accepted by this proxy"}');
            }
            
            // CORS enablement and other headers
            header("Access-Control-Allow-Origin: *");
            header("Content-type: application/json");
            header("X-Content-Type-Options: nosniff");
            header("X-XSS-Protection");
            
            // get data or die
            if ($_POST["requestBody"]) {
                $data = json_decode($_POST["requestBody"]);
            } else {
              exit("request body missing");
            }
            // get request type or default to POST
            if ($_POST["requestType"]) {
                $method = $_POST["requestType"];
            } else {
              $method = 'POST';
            }
            // get bc_token or die
            if ($_POST["bc_token"]) {
                $bc_token = $_POST["bc_token"];
            } else {
              exit("bc_token missing");
            }
            
            $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',
                    "Authorization: BC_TOKEN {$bc_token}"
                ),
                CURLOPT_POSTFIELDS => json_encode($data)
            ));
            $response = curl_exec($ch);
            curl_close($ch);
            
            // Check for errors
            if ($response === FALSE) {
                die(curl_error($ch));
                exit('An error occurred on making the request');
            } else {
              echo $response;
            }
            
            ?>
            

    Seite zuletzt aktualisiert am 13. August 2020