我正在尝试使用Google API在youtube上创建实时流。现在,它仅在我使用oauth授权时才有效。使用API密钥授权时,出现授权错误(需要登录)
当我使用oauth授权时-每次创建新翻译时都需要输入确认代码。可以使用不需要输入确认代码的授权使用API的“ liveStreams-> insert”方法吗?
答案 0 :(得分:0)
从您的写作看来,您似乎不了解OAuth的概念以及何时使用OAuth和API密钥。
尝试这样考虑:您个人拥有Google帐户。此Google帐户与您的YouTube帐户(或通常称为您的YouTube频道)不同。但是您的Google帐户已与您的YouTube频道相关联(您可以拥有多个)。由于您已登录Google帐户,并且您的频道和Google帐户已关联,因此YouTube网站知道您的身份,并可以访问您的频道。
现在,您进入Google Cloud Console。在这里,您创建一个项目,该项目与YouTube帐户非常相似,因为它也是一个独立帐户,在这种情况下,该帐户代表您的应用程序,但已链接到您的Google帐户,因此Cloud Console网站知道您可以只要您登录Google帐户即可访问该项目。
但是,您的YouTube帐户未链接到您的Cloud Console项目。当您使用API密钥发出API请求时,API不会像在“您的Google帐户”中那样显示您,而是您的应用程序的Cloud Console Project。因此,使用API密钥只能访问公开数据(在未登录YouTube的情况下浏览YouTube时可以“看到的所有内容”。)
因此,为了使应用程序读取私有通道信息或修改通道信息,API需要验证是否确实允许发出该请求的人这样做。这就是OAuth发挥作用的地方。
当您说必须为每个请求提供确认码时,我认为您无需保存访问令牌和刷新令牌。我强烈建议您在Google Developers上阅读Using OAuth 2.0 to Access Google APIs和Obtaining authorization credentials,以帮助您入门。