2013-06-27 5 views
0

Я использую OmniAuth в Rails для аутентификации пользователей через OAuth YouTube.YouTube OAuth: Почему некоторые учетные записи дают мне «Недопустимые учетные данные»?

У меня есть несколько аккаунтов Google/YouTube. Двое из них вошли в систему. Два из них терпят неудачу с «invalid_credentials».

Я не совсем уверен, что означает эта ошибка; он не отображается в OAuth 2 spec.

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

Что происходит?

+0

Существует ряд причин, по которым возникает «invalid_credentials». Один из них - это набор недопустимых идентификаторов клиента/клиента. Используют ли они тот же идентификатор клиента/секрет, что и ваши другие учетные записи? Кроме того, что происходит, когда вы пытаетесь использовать пример кода barebones вместо библиотеки-обертки, такой как OmniAuth? –

+0

Я использую ту же самую точную настройку, включая идентификатор клиента и секрет, для входа в каждую учетную запись. Я просто выхожу из системы в своем приложении, а затем пытаюсь войти в систему как другой пользователь Google. У меня нет никакого опыта, делающего поток OAuth вручную, и я думаю, что это было бы время, чтобы попробовать сейчас. – Peeja

+0

Я понимаю, что вы находитесь под временным ограничением, но попробуйте этот код с этими учетными записями. Это в Python, но если вы хорошо разбираетесь в Ruby, Python должен быть простым: https://gist.github.com/ikai/5905078. Попробуйте добавить к нему вызов API, который вы можете извлечь из нашего примера кода: https://developers.google.com/youtube/v3/code_samples/python#my_uploads –

ответ

6

У меня есть ответ.

Они возвращаются invalid_credentials, потому что нет учетной записи YouTube, связанный с пользователем, который пытается войти в систему.

Но! Я действительно не заходил на YouTube с этими учетными записями, прежде чем пытаться войти в мое приложение. Оказывается, этого недостаточно.

В этом отважном новом мире пользователи Google могут войти на YouTube , фактически не создав учетную запись YouTube. В пользовательском интерфейсе YouTube аккаунт YouTube является «каналом». Теперь можно войти в YouTube и не иметь канал.

Чтобы создать канал, нажмите меню пользователя (представленное вашим профилем) в верхнем правом углу страницы и нажмите «Мой канал». Вам будет предложено создать его.

Затем вы можете войти в систему с YouTube OAuth.

+0

Правильно! Я должен был понять это раньше. Я даже написал документ, ссылающийся на требование: https://developers.google.com/youtube/v3/guides/moving_to_oauth. Образец работы Python, вероятно, вводит в заблуждение. Вероятно, нам нужно посмотреть, как мы можем вернуть лучшее сообщение об ошибке. –

+0

Спасибо Икай! Я ценю помощь. – Peeja

+0

Блестящий! <3 +1 –