OAuth或API密钥授权?

时间:2019-04-12 13:51:05

标签: youtube-data-api

我正在尝试使用Google API在youtube上创建实时流。现在,它仅在我使用oauth授权时才有效。使用API​​密钥授权时,出现授权错误(需要登录)

当我使用oauth授权时-每次创建新翻译时都需要输入确认代码。可以使用不需要输入确认代码的授权使用API​​的“ liveStreams-> insert”方法吗?

1 个答案:

答案 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 APIsObtaining authorization credentials,以帮助您入门。