Как обновить YouTube Analytic API V1 до V2 в PHP

Я пытаюсь написать скрипт, который получает отчет YouTube Analytics для каждого видео на определенном канале. Я установил клиентскую библиотеку PHP Google через Composer, и я думаю, что это лучшая практика. Теперь моя проблема заключается в том, что когда я запускаю код, я продолжаю получать сообщение об ошибке, поскольку я использую V1 API, несмотря на то, что я следую всей документации по обновлению до V2 API... Мой код выглядит следующим образом:

public function getVideoTrafficSource($videoId){
        if ($this->session_available){
          $channelres = array();
          $msg = "";
          $key_dir = "../".file_dir."/".$_SESSION['my_user_name'].".txt";
               $result = true;
               if (file_exists($key_dir)){
                    $key = file_get_contents($key_dir);
                    $result = true;
               }else{
                    $result = false;
               }
  
               $client = new Google_Client();
               $client->setApplicationName($this->APPName);
               $client->setClientId($this->OAUTH2_CLIENT_ID);
               $client->setAccessType('offline');
               $client->setAccessToken($key);
               $client->setScopes($this->scope);
               $client->setClientSecret($this->OAUTH2_CLIENT_SECRET);
               if (!$result){
                  $msg = "No Key file available";
               }else{
                try{
                   if ($client->getAccessToken()) {
                       if ($client->isAccessTokenExpired()) {
                           $newToken = json_decode($key);
                           $client->refreshToken($newToken->refresh_token);
                           //file_put_contents($key_dir, $client->getAccessToken());
                       }                
                       $youtube = new Google_Service_YouTubeAnalytics($client);
                         $trafficReport = $youtube->reports->query(array('ids'=> 'channel==UCRRUR9-KV3TyuFcZwhM_9Zw'),array('startDate'=> '2017-11-01'),array('endDate'=> '2018-11-01'),array('dimensions'=> 'insightTrafficSourceDetail'),array('metrics'=> 'estimatedMinutesWatched,views'),  array('filters'=> 'video==sDzJhtmvLKQ;insightTrafficSourceType==EXT_URL'),array('sort'=> '-estimatedMinutesWatched') );
                       //$trafficReport = $youtube->reports->query('2017-01-01','2018-01-01', 'views', 'insightTrafficSourceType', 'video= = {$videoId}', 'views');
                         
                        }
                        $msg = $trafficReport;
                } catch(Google_Service_Exception $e) {
                          $msg = $e->getMessage();
                 }catch (Exception $e) {
                          $msg =  $e->getMessage();
                 }
               }
          }else{
            $msg = "Session Expired";
          }
          return $msg;
     }

Я не знаю, что-то не так с моим кодом. Это ошибка, которую я получаю до сих пор

error":"{\n \"error\": {\n  \"errors\": [\n   {\n    \"domain\": \"global\",\n    \"reason\": \"deleted\",\n    \"message\": \"Version 1 of the YouTube Analytics API has been deprecated as of November 1, 2018. Please refer to the migration guide for details about how to update your client to work with version 2 of the API: https://developers.google.com/youtube/analytics/migration.\"\n   }\n  ],\n  \"code\": 410,\n  \"message\": \"Version 1 of the YouTube Analytics API has been deprecated as of November 1, 2018. Please refer to the migration guide for details about how to update your client to work with version 2 of the API: https://developers.google.com/youtube/analytics/migration.\"\n }\n}\n"}

Можете ли вы сбросить значение $this->scope ?

Alexis 28.02.2019 15:56

Я обнаружил причину, по которой я получаю сообщение об ошибке... Моя установленная библиотека Google Clienl включает V1 API YouTube Analytics. Я снова установил клиентскую библиотеку Google, и она поставляется с V2. Но теперь у меня был другой Проблема.. Я получаю код ошибки: 400, когда запускаю приведенный выше код.. Это ошибка: {"error":"{\n \"error\": {\n \"code\": 400,\ n \"сообщение\": \"Требуется\",\n \"ошибки\": [\n {\n \"сообщение\": \"Требуется\",\n \"домен\": \"глобальный \",\n \"причина\": \"требуется\"\n }\n ]\n }\n}\n"}

Femikuye 28.02.2019 22:46
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
67
0

Другие вопросы по теме