API аналитики и отчетности YouTube с помощью скрипта Google Apps - PullRequest
1 голос
/ 31 октября 2019

Я пытаюсь использовать API аналитики и отчетности YouTube с помощью скрипта Служб Google, чтобы заполнить лист Google данными аналитики из учетных записей брендов YouTube, которыми я владею и управляю.

В качестве предисловия я попробовалэто на каналах YouTube, которыми я владею, и на каналах, которыми я управляю, и ничего не работает. Я также рассмотрел все вопросы и ответы по переполнению стека за последние несколько дней, и ничего не помогло. Поверьте мне, когда я говорю, что все перепробовал. Я не верю, что проблема заключается в коде или в том, как я его настраиваю;Я считаю, что это связано с Google или с самим API YouTube.

Вот шаги, которые я предпринял:

  • Включите API-интерфейс аналитики YouTube и API данных YouTube вGoogle Apps Script. (API отчетов YouTube нигде не найдено, в чем может быть проблема ...)

  • Включить те же API в консоли разработчика Google (там доступен API отчетов YouTube)

  • Установите идентификатор клиента и секрет и связали мой проект со скриптом приложений

  • Проверено, что мой код действительно работает, введя те же точные параметры (метрики, измерения и т. д.) в обозревателе API аналитики и отчетности YouTube в консоли разработчика Google. Когда я делаю это, исследователь действительно экспортирует нужную информацию. Однако в Google Apps Script он вообще не работает.

Из-за того, что код работает в Проводнике, а не в Google Apps Script, я считаю, что что-то естьпросто, что я делаю неправильно, или это ошибка на стороне Google. Я надеюсь, что есть способ обойти это или исправить, потому что я действительно хотел бы получить данные из моих каналов YouTube в Google Sheets.

Код скрипта Google Apps (сокращенно для простоты. Клавиша """свойство может быть необязательным, но без него оно также не работает).

function myFunction() {
  var metrics = [
    'averageViewDuration'
  ];
  var oneMonthInMillis = 1000 * 60 * 60 * 24 * 30;
  var today = new Date();
  var lastMonth = new Date(today.getTime() - oneMonthInMillis);
  var report = YouTubeAnalytics.Reports.query({
    ids: 'channel==MINE',
    startDate: formatDateString(lastMonth),
    endDate: formatDateString(today),
    metrics: metrics.join(','),
    dimensions: 'day',
    sort: 'day',
    includeHistoricalChannelData: false,
    key: "AIzaSyAcVb-hriIydRs8iVqFZ6ZoyL8En3qLcnc",
  });

  Logger.log(report);
}

Когда я запускаю код, в логгер выводится ноль. Я ожидаю, что там что-то будет.

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

"[19-10-30 17: 58: 19: 251 PDT]{columnHeaders = [{columnType = DIMENSION, dataType = STRING, имя = день}, {columnType = METRIC, dataType = INTEGER, name = averageViewDuration}], kind = youtubeAnalytics # resultTable, lines = [[2019-09-30, 0], [2019-10-01, 0], [2019-10-02, 0], [2019-10-03, 0], [2019-10-04, 0], [2019-10-05, 0], [2019-10-06, 0], [2019-10-07, 0], [2019-10-08, 0] ...]]} "

Нет причинчто это не должно работать. Как вы думаете, в чем проблема?

1 Ответ

0 голосов
/ 31 октября 2019

Извините, но в настоящее время то, что вы хотели бы сделать, не поддерживается Apps Script. Об этом уже сообщалось в Google Issue tracker, как вы можете видеть по следующим ссылкам:

В качестве обходного пути вы можете реализовать Oauth2.0, как сказано в this Пост переполнения стека

Редактировать

Если у вас возникли проблемы с использованием токена обновления, Используйте этот код, чтобы сделать запрос непосредственно к API YouTube после получения токена доступа с детской площадки Oauth2.0

function makeRequest() {
  var response = UrlFetchApp.fetch('https://youtubeanalytics.googleapis.com/v2/reports?endDate=2019-10-10&ids=channel%3D%3DMINE&metrics=views&startDate=2019-10-09', {
    headers: {
       // you will get the access token from Oauth2.0 playground
      Authorization: 'Bearer ACCES_TOKEN'   
    }
  });
  Logger.log(response)
}

С API YouTube не авторизует канал YouTube страницы Google+ , он говорит:

Инженерная команда решила, что невозможно поддержать этот вариант использования. Для доступа к каналу, принадлежащему странице G +, вам нужно будет использовать что-то иное, чем расширенный сервис YouTube.

Так что, похоже, поддержка того, что вы хотите, не поддерживается

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...