Запрос на автономный доступ к YouTube Analytics при аутентификации как бренда, а не пользователя

Apps Script продолжает запрашивать офлайн разрешение с помощью API Youtube

В Google Apps Script доступ к API отчетов YouTube запрещен

Это очень похожие вопросы, однако, я вошел как владелец. Сценарий находится на диске владельца.

Моя проблема

Я пытался получить доступ к отчетам YouTube Analytics от владельца контента с помощью GAS(Google Apps Script). Существует две учетные записи: учетная запись бренда (содержит данные, т. Е. Видеоконтент) и учетная запись пользователя. Они оба используют одинаковые учетные данные (электронная почта и pwd). При авторизации как пользователь я получаю 403(запрещено). При авторизации в качестве бренда меня просят снова и снова авторизовать автономный доступ, не давая мне возможности сделать запрос.

Что я пробовал...

  • Запуск из Node, используя токены OAUTH Playground, и это работает. Но мне нужно придерживаться ГАЗА.
  • Использование google-script-oauth2: для жесткого кодирования учетных данных (аналогично решению Node), но я не смог установить токен обновления. Я получил 401(недействительные учетные данные) - я считаю, что токен на предъявителя истек
  • Настройка учетных данных и включение API-интерфейсов аналитики youtube и youtube
  • удаление старых учетных данных и присоединение нового проекта к ГАЗУ
  • удаление аутентификации в настройках приватности и повторная аутентификация
  • переключение опции использования небезопасных сценариев и повторение шага 3
  • переключение между contentOwner и параметрами канала для параметра ids
  • ПРИМЕЧАНИЕ. У меня есть два сценария приложения OAUTH2 для учетных данных , и веб-клиент настроен как веб-приложение.

Код ГАЗА

function test(){
   YouTubeAnalytics.Reports.query("contentOwner==id", "2017-03-01", "2017-03-31", "likes");
}

Последние мысли

Я полагаю, что существует несоответствие между Брендом и пользователем, так что у бренда нет одинакового доступа к токену OAUTH 2. Поэтому он никогда не генерирует токен обновления. Итак, запрос видит, что я являюсь авторизованным владельцем канала, но не могу завершить поток OAUTH.

Если это правда, почему и как мне это исправить? Если нет, то, что вы думаете, может быть ошибка?

Я только что понял, что скрипт находится в учетной записи пользователя, а не в учетной записи бренда. Повлияет ли это на валидацию?

Также на фактическом канале пользователь указан в качестве основного владельца.

1 ответ

Я думаю, что проблема связана с ограниченными областями OAuth Apps Script. Откройте редактор сценариев и перейдите в раздел " Ресурсы-> Расширенные службы Google", и вы увидите, что API отчетности YouTube не поддерживается. Однако вы можете обойти это, используя учетные записи служб. Их сложно настроить, но как только вы их запустите, вы можете явно запросить области, необходимые для выполнения авторизованных вызовов API из GAS.

Вот несколько ссылок для начала:

Использование OAuth 2.0 для серверных приложений

Области OAuth 2.0 для API Google

Для использования OAuth 2.0 для серверных приложений вам нужно прокрутить вниз до раздела " Подготовка к выполнению авторизованного вызова API". Перейдите на вкладку HTTP/REST, и вы пройдете через все этапы, необходимые для настройки учетной записи службы (вам потребуется создать токен JWT - J SON Wb с консоли Google для использования в вызовах API), Вам также необходимо получить необходимые URL-адреса OAuth-области для API отчетности YouTube по второй предоставленной ссылке. Как только вы все настроите, вы сможете отправлять запросы к API напрямую из Apps Script, используя URLFetchApp. Желаем удачи в вашем проекте.

Еще кое-что. Проверьте список API Google Explorer для API отчетов YouTube. Вы можете получить конечные точки URL (и методы запроса), которые вам понадобятся в вызовах UrlFetchApp, поиграв в Проводник.


ОБНОВЛЕНИЕ 4/28/2017

Также обязательно включите API отчетов YouTube в консоли Google API.

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