Hochladen von Videos auf Youtube mit Youtube Data API V3 und Google API Client PHP - Abrufen von 401-Nachrichten (nicht autorisiert)

Ich muss eine Möglichkeit implementieren, um Videos von unserer Website auf YouTube hochzuladen. Ich habe die App bereits in Google Cloud registriert und alle erforderlichen Client-IDs, Client-Geheimcodes, Browserschlüssel, Weiterleitungs-URLs und Serverschlüssel erhalten. Ich habe auch die Youtube Data API V3, die Google+ API, die Freebase API und die YouTube Analytics API aktiviert, wie von verschiedenen Websites empfohlen.

Hier ist mein Code unten:

    require_once 'google-api-php-client/src/Google_Client.php';
    require_once 'google-api-php-client/src/contrib/Google_YouTubeService.php';

    $client = new Google_Client();
    $client->setApplicationName('Application Name');
    $client->setClientId('CLIENT_ID');
    $client->setClientSecret('CLIENT_SECRET_CODE');
    $client->setRedirectUri('REDIRECT_URI');
    $client->setDeveloperKey('DEVELOPER_KEY');

    $youtube = new Google_YouTubeService($client);
    if (isset($_GET['code'])) {
        $client->authenticate();
        $_SESSION['token'] = $client->getAccessToken();
        $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
        header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
    }

    if (isset($_SESSION['token'])){
        $client->setAccessToken($_SESSION['token']);
    }

    if ($client->getAccessToken()){
        $path_to_video_to_upload = $_FILES["video"]["tmp_name"];
        $mime_type = $_FILES["video"]["type"];
        $snippet = new Google_VideoSnippet();
        $snippet->setTitle('Highlights');
        $snippet->setDescription('Description Of Video');
        $snippet->setTags(array('training', 'Soccer'));
        $snippet->setCategoryId(17);

        $status = new Google_VideoStatus();
        $status->privacyStatus = "private";

        $video = new Google_Video();
        $video->setSnippet($snippet);
        $video->setStatus($status);

        try {
            $obj = $youtube->videos->insert("status,snippet", $video,
            array("data"=>file_get_contents($path_to_video_to_upload), 
            "mimeType" => $mime_type));
            } catch(Google_ServiceException $e) {
            print "Caught Google service Exception ".$e->getCode(). " message is ".$e->getMessage()." <br>";
            }

    $_SESSION['token'] = $client->getAccessToken();
    }

    else{
            $authUrl = $client->createAuthUrl();
            print "<a href='$authUrl'>Connect Me!</a>";
    }

Ich bezog mich auf diese Codes von:Laden Sie Videos mit Youtube API V3 und PHP auf Youtube hoch

und

http://www.dreu.info/blog/uploading-a-video-to-youtube-through-api-version-3-in-php/

Als ich diesen Code zum ersten Mal ausführte, stellte ich eine Verbindung zum YouTube-Konto her (auf einem Bildschirm wurde gefragt, ob Google mein YT-Konto verwalten soll). Beim zweiten Versuch erhielt ich die Antwort 401-Nachricht.

Hier ist die Antwort vom Youtube-Server

Beim Aufrufen des Google-Dienstes ist eine Ausnahme-401-Meldung aufgetretenhttps://www.googleapis.com/upload/youtube/v3/videos?part=status%2Csnippet&uploadType=multipart&key=AIzaSyCCySI5cToH3sICTmhCEFHW7QkIDptsjXg: (401 nicht Autorisiert

Ich habe versucht, nach verschiedenen Lösungen zu suchen, aber ohne Erfolg kann ich sie anscheinend nicht finden. Jede Hilfe ist dankbar, danke!

Folgefrage: Ist der Entwicklerschlüssel der Browserschlüssel oder der Serverschlüssel? Ich bin verwirrt, welche ich in meinem Code verwenden soll. Ich habe versucht, die Tasten zu wechseln und es hat auch nicht funktioniert.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage