YouTube OAuth: Why do some accounts give me "Invalid Credentials"?
我正在 Rails 中使用 OmniAuth 通过 YouTube OAuth 对用户进行身份验证。
我有多个 Google/YouTube 帐户。其中两个登录就好了。其中两个失败并显示 "invalid_credentials"。
我不完全确定那个错误是什么意思;它没有出现在 OAuth 2 规范中。
我已使用多重登录在 Google 端成功登录了所有这四个帐户,因此并不是我登录错误。其中两个帐户有效,所以不是我的 API 密钥不好。
发生了什么事?
- 出现"invalid_credentials"的原因有很多。其中之一是一组无效的客户端 ID/客户端密码。这些帐户是否与您的其他帐户使用相同的客户 ID/密码?此外,当您尝试使用准系统代码示例而不是像 OmniAuth 这样的package库时会发生什么?
-
我正在使用完全相同的设置(包括客户端 ID 和密码)登录每个帐户。我只是在我的应用程序中单击注销,然后尝试以其他 Google 用户身份登录。我没有任何手动执行 OAuth 流程的经验,我认为现在尝试一下会很费时间。
-
我知道您有时间限制,但请使用这些帐户尝试此代码。它是在 Python 中编写的,但如果您擅长 Ruby,Python 应该很容易:gist.github.com/ikai/5905078。尝试添加一个 API 调用,您可以从我们的示例代码中提取该调用:developers.google.com/youtube/v3/code_samples/python#my_uplo??ads
-
哦,棒极了。我试试看,谢谢!
-
呵呵。好吧,我尝试使用具有相同凭据的 Python 示例代码,它适用于我的所有帐户。现在我被难住了……
我知道答案了。
他们返回 invalid_credentials,因为没有与尝试登录的用户关联的 YouTube 帐户。
但是!在尝试登录我的应用程序之前,我确实确保使用这些帐户登录 YouTube。事实证明这还不够。
在这个美丽的新世界中,Google 用户无需实际创建 YouTube 帐户即可登录 YouTube。在 YouTube 用户界面中,YouTube 帐户是一个"频道"。现在可以登录 YouTube 而没有频道。
要创建频道,请点击页面右上角的用户菜单(由您的个人资料图片表示),然后点击"我的频道"。系统会提示您创建一个。
然后您就可以使用 YouTube OAuth 登录了。
- 那就对了!我应该早点注意到这一点。我什至写了一个文档来引用这个要求:developers.google.com/youtube/v3/guides/moving_to_oauth。 Python 示例工作可能具有误导性。我们可能需要研究如何返回更好的错误消息。
-
谢谢伊凯!我很感激你的帮助。
-
嗨,这已经晚了 5 年,但我有一个频道,但仍然收到此错误。