2013-06-27 44 views
0

我在Rails中使用OmniAuth通过YouTube OAuth验证用户身份。YouTube OAuth:为什么有些帐户给我“无效凭证”?

我有几个Google/YouTube帐户。其中两人登录就好了。其中两个失败与“invalid_credentials”。

我不完全确定那个错误是什么意思;它不会出现在OAuth 2 spec中。

我已成功使用多帐户登录到Google这些帐户中的所有这四个帐户,所以这不是我登录不正确。其中两个帐户可以工作,所以这不是我的API密钥不好。

发生了什么事?

+0

“invalid_credentials”出现的原因有很多。其中之一是一组无效的客户端ID /客户端密钥。这些是否使用与您的其他帐户相同的客户端ID /密码?另外,当您尝试使用准系统代码示例而不是像OmniAuth这样的包装库时会发生什么? –

+0

我使用相同的确切设置,包括客户端ID和密码登录到每个帐户。我只需点击注销我的应用程序,然后尝试以不同的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

谢谢Ikai!我很感激帮助。 – Peeja

+0

太棒了! <3 +1 –