Ключ API Youtube - ошибка accessNotConfigured

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

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=true&key=my_api_key

и я получил эту ошибку:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "accessNotConfigured",
    "message": "Access Not Configured"
   }
  ],
  "code": 403,
  "message": "Access Not Configured"
 }
}

Но я настроил свою учетную запись и настроил службы для работы с YouTube Data API v3. Есть идеи, что мне еще нужно сделать?

РЕДАКТИРОВАТЬ: после создания clientId и включения всех необходимых служб я получил этот ответ:

{
 "error": {
  "errors": [
   {
    "domain": "youtube.parameter",
    "reason": "authorizationRequired",
    "message": "Unauthorized",
    "locationType": "parameter",
    "location": "mine"
   }
  ],
  "code": 401,
  "message": "Unauthorized"
 }
}

на этот URL-адрес, который я вставил в браузер:

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=true&key=key_for_server_apps

и тот же результат, что и изначально, когда я ввел этот URL-адрес в браузере

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=true&key=key_for_browser_apps

Спасибо, Алекс


person Genadinik    schedule 01.07.2013    source источник


Ответы (5)


Синтез нескольких разных вещей на основе комментариев оригинального плаката к другим ответам:

Кроме того, канал на YouTube, который я пытаюсь открыть, на самом деле не мой. Это популярное шоу на YouTube. Как я мог это сделать?

Вызов API, который вы хотите сделать, это youtube.channels.list(), и вы можете передать в одном из двух параметров, чтобы получить информацию о канале для произвольного канала. (Вы не хотите использовать mine=true, так как вы говорите, что не пытаетесь получить свой собственный канал.)

  • Вы можете использовать forUsername="LEGACY_USERNAME", если знаете устаревшее имя пользователя YouTube канал, например «GoogleDevelopers» или «LadyGagaVEVO».
  • Вы можете использовать id="UC...", если вам известен идентификатор канал (который обычно начинается с «UC»).

Вам также потребуется указать значение параметра part=. part="snippet" обычно достаточно. Вам не нужно проходить через поток OAuth 2 для такого вызова API, и вы можете просто предоставить действительный ключ API, для которого включен API данных YouTube v3. Серия видеороликов, ссылку на которую опубликовал Икай, является хорошим руководством по регистрации для получения ключа API.

Вот рабочий пример вызова youtube.channels.list(part="snippet", forUsername="GoogleDevelopers") с использованием интерактивного API Explorer:

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=snippet&forUsername=GoogleDevelopers

Он соответствует следующему URL-адресу: https://www.googleapis.com/youtube/v3/channels?part=snippet&forUsername=GoogleDevelopers&key={YOUR_API_KEY}

Поскольку вы спрашиваете о приложении для Android, вероятно, было бы неплохо использовать клиентские библиотеки Java для выполнения ваших запросов вместо запроса необработанного URL-адреса. пример кода на этой странице должен помочь вам начать работу.

person Jeff Posnick    schedule 09.07.2013

Является ли ключ API простым ключом API или токеном доступа OAuth 2.0? Этот вызов API требует авторизации OAuth 2.0, прежде чем он будет работать.

Недавно мы опубликовали видео-плейлист, объясняющий, как зарегистрироваться для получения простого ключа и идентификатор клиента/секрет клиента запускают некоторые образцы.

Вот что вам нужно сделать:

  1. Зарегистрируйтесь для получения идентификатора клиента/секрета клиента
  2. Пройдите трехсторонний поток авторизации OAuth 2.0 и получите токен доступа.
  3. Используйте этот токен доступа, чтобы сделать вызов API

В какой-то момент мы опубликуем видео об использовании площадки OAuth для создания токена доступа.

person Ikai Lan    schedule 02.07.2013
comment
@lkai Lan, чем ты, видео очень хорошо сделаны. Я использовал их, чтобы получить cliendId и включить различные необходимые службы. Но я все еще получаю ошибки неавторизованного или ненастроенного. Я расширил свой первоначальный вопрос, чтобы показать URL-адреса и ошибки. Любая идея, что я могу делать неправильно? - person Genadinik; 04.07.2013

Чтобы использовать Mine=true, вам необходимо иметь токен Oauth2, а также для получения пользовательских данных.

вот ссылка, которую вы можете использовать, что позволит вам просматривать ее, если вы включите аутентификацию в правом верхнем углу

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=contentDetails&mine=true&_h=1&

person Adam    schedule 05.07.2013
comment
я не должен был использовать mine=true? Кроме того, канал на YouTube, который я пытаюсь открыть, на самом деле не мой. Это популярное шоу на YouTube. Как я мог это сделать? - person Genadinik; 06.07.2013

  1. Вы уверены, что проходите процесс OAuth2 в своем приложении и получаете ключ OAuth2?
  2. Также в консоли разработчика в разделе «Службы» вы включили YouTube Data API v3?
person Ibrahim Ulukaya    schedule 05.07.2013
comment
@Inbahim, как мне убедиться, что я прохожу через OAuth2? И да, я включил API данных YouTube v3. - person Genadinik; 06.07.2013
comment
Проверьте строку 129, чтобы узнать, как создается учетная запись, прошедшая через OAuth2 github.com/youtube/ytd-android/blob/master/src/com/google/ytdl/ - person Ibrahim Ulukaya; 06.07.2013
comment
Если вы просто пытаетесь из браузера, проверьте этот, чтобы получить правильный вызов для получения токена OAuth2. developers.google.com/youtube/v3/guides/authentication - person Ibrahim Ulukaya; 06.07.2013

я решил эту проблему, потому что мне не хватает конфигурации на Google Console Dashboard.

если вы используете google api v3, это простой способ решить эту проблему, вам нужно только включить youtube api через панель управления Google Console. https://console.developers.google.com

person yussan    schedule 16.09.2016