OAuth 或 API 密钥授权?

OAuth or API key authorization?

我正在尝试使用 google API 在 YouTube 上创建直播。现在它只在我使用 oauth 授权时工作。当我使用 API 密钥授权时,出现授权错误(需要登录)

当我使用 oauth 授权时 - 每次创建新翻译时都需要输入确认码。 API的"liveStreams->insert"方式是否可以使用不需要输入确认码的权限?

从您所写的内容来看,在我看来您还没有理解 OAuth 的概念以及何时使用 OAuth 与 API 密钥。

试着这样想:作为一个人,您有一个 Google 帐户。此 Google 帐户与您的 YouTube 帐户(或者更常见的说法是您的 YouTube 频道)不同。但是您的 Google 帐户与您的 YouTube 频道相关联(您可以拥有多个)。由于您已登录到您的 Google 帐户并且您的频道和 Google 帐户已链接,YouTube 网站知道您是谁并允许您访问您的频道。

现在您转到 Google 云控制台。您在这里创建了一个项目,它与 YouTube 帐户非常相似,因为它也是一个独立帐户,在本例中代表您的应用程序,但链接到您的 Google 帐户,因此 Cloud Console 网站只要您登录到您的 Google 帐户,就知道可以让您访问该项目。

但是,您的 YouTube 帐户未链接到您的 Cloud Console 项目。当您使用 API 键发出 API 请求时,API 不会像在 "your Google account" 中那样看到您,而是您的应用程序的 Cloud Console 项目。这就是为什么使用 API 密钥,您只能访问公开可用的数据(当您在未登录的情况下浏览 YouTube 时可以 "see" 访问的所有数据)。

因此,为了让应用程序读取私人频道信息或修改频道信息,API 需要验证发出该请求的人实际上是否被允许这样做。这就是 OAuth 发挥作用的地方。

当你说你必须为每个请求提供确认码时,我认为你没有保存访问令牌和刷新令牌。我强烈建议您阅读 Using OAuth 2.0 to Access Google APIs and Obtaining authorization credentials 关于 Google 开发人员的文章,以帮助您入门。