Загрузка видео на Youtube с использованием YouTube Data API V3 и Google API Client PHP - получение 401 (неавторизованного) сообщения

Я должен реализовать способ загрузки видео с нашего сайта на YouTube. Я уже зарегистрировал приложение в Google Cloud и получил весь необходимый идентификатор клиента, секретный код клиента, ключ браузера, URI перенаправления и ключ сервера. Я также включил API данных Youtube V3, Google+ API, Freebase API и YouTube Analytics API, как предлагалось различными сайтами.

Вот мой код ниже:

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

Я ссылался на эти коды из:Загрузить видео на Youtube, используя Youtube API V3 и PHP

а также

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

Когда я впервые запустил этот код, он подключил меня к учетной записи YouTube (с экраном, запрашивающим разрешение Google управлять моей учетной записью YT), а затем со второй попытки я получил этот ответ 401 Сообщение.

Вот ответ от сервера YouTube

Оказалось сообщение об исключении 401 службы Google Ошибка при вызове POSThttps://www.googleapis.com/upload/youtube/v3/videos?part=status%2Csnippet&uploadType=multipart&key=AIzaSyCCySI5cToH3sICTmhCEFHW7QkIDptsjXg: (401) Несанкционированный

Я пытался найти различные решения, но безрезультатно, я не могу найти его. Любая помощь приветствуется, спасибо!

дополнительный вопрос: является ли ключ разработчика ключом браузера или ключом сервера? Я запутался в отношении того, что я должен использовать в своем коде. Я попытался переключить ключи, и это тоже не сработало.

Ответы на вопрос(2)

Ваш ответ на вопрос