При запросе YouTube Analytics API .NET возвращается ошибка 403 Forbidden.

Я прочитал большинство ссылок на консоль разработчика.

  1. Я создал установленный проект в Google Developers Console под «Учетной записью YouTube Manager Google» на сайте YouTube.
  2. Я включил YouTube Data API v3 и YouTube Analytics v1.
  3. Я создал учетные данные для установленного проекта.

Код аутентифицируется без проблем:

UserCredential credential;
            using (var stream = new FileStream(hds_opo_youtube_service.Properties.Settings.Default.clientIDFile, FileMode.Open, FileAccess.Read))
            {
                credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    // This OAuth 2.0 access scope allows for read-only access to the authenticated 
                    // user's account, but not other types of account access.
                    new[] { YouTubeService.Scope.YoutubeReadonly,
                            YouTubeAnalyticsService.Scope.YtAnalyticsReadonly},
                    "user",
                    CancellationToken.None,
                    new FileDataStore(this.GetType().ToString())
                );
            }

            var youtubeService = new YouTubeService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = this.GetType().ToString()
            });
I can get the list of videos from one specfic playlist using the youtube data API. Then I create a youtube analytics service and try querying for view data. That is when I get the:

Произошла ошибка: Google.Apis.Requests.RequestError Запрещено [403] Ошибки [ Сообщение [Запрещено] Местоположение [ - ] Причина [запрещено] Домен [глобальный] ]

Я попытался разрешить ситуацию с помощью API Explorer. Это было очень полезно. Когда я пытаюсь пройти аутентификацию с помощью учетной записи профиля владельца YouTube Manager. Запрос не выполняется. Но если я использую другую учетную запись страницы Google+, я могу заставить запрос работать. У учетной записи страницы Google+ есть учетная запись электронной почты, но вся корреспонденция с учетной записью страницы Google+ направляется на учетную запись профиля владельца менеджера. Поэтому я попытался добавить учетную запись страницы Google+ в разрешения проекта, но нет возможности подтвердить ссылку. Я думаю, что моя проблема в том, что канал YouTube принадлежит учетной записи страницы Google+. Назначенный владелец менеджера имеет другую учетную запись, учетную запись профиля, хотя он является менеджером учетной записи YouTube. Я знаю, это звучит очень запутанно. Есть ли у кого идеи как решить проблему. Спасибо


person hoary_marmot    schedule 19.05.2015    source источник


Ответы (1)


Что ж, пожалуй, я отвечу на свой вопрос. Канал YouTube связан с бизнес-страницей Google+. Эта страница не является учетной записью Google в полном смысле этого слова. У него есть автоматически сгенерированное электронное письмо, но это не настоящая учетная запись электронной почты. Менеджер-владелец — это аккаунт профиля Google+. Я не понимал этого различия до создания своего приложения, поэтому, когда я первоначально пытался пройти аутентификацию, мне был предоставлен выбор между аутентификацией страницы Google+ или профиля Google+. Я выбрал профиль Google+, думая, что это владелец канала на YouTube. Затем все последующие проверки подлинности использовали сохраненный токен обновления и больше не спрашивали, с какой из двух учетных записей google+ выполнять проверку подлинности. Тем временем я использовал API Explorer и понял, что мне нужно пройти аутентификацию на странице Google+. Поэтому я удалил сохраненный токен обновления, а затем снова запустил код. Это дало мне выбор из двух аккаунтов. Я выбрал страницу Google+, и запрос аналитики YouTube сработал.

person hoary_marmot    schedule 20.05.2015