桌面应用和Youtube搜索API auth,C++

Fir*_*eho 6 youtube authentication oauth google-api

我正在用C++编写一个玩具桌面应用程序.它需要在YouTube上搜索一首歌.目前,该应用通过参数调用googleapis.com/youtube/v3/searchkey.这很好,易于编写,但会导致身份验证问题.

我无法将密钥与应用程序一起分发,因为它很容易受到配额失窃和其他因素的影响(作为一种解决方法,我目前需要生成您自己的API密钥并将它们放入您的配置中 - 它不方便,闻起来像一个肮脏的黑客).Google允许限制密钥,但仅限于:IP,HTTP引荐,特定的Android应用,特定的iOS应用.这些都不适用.因此,我必须将该数据存储在其他地方或使用其他一些auth方法.第一种需要某种服务器,它在某个地方全天候运行,并且有自己的配额限制,这有更多的问题而且很荒谬 - 必须有一个正确的方法.当我尝试使用Google Developer Console的凭据向导时,在询问了有关我的应用的一些事情后,它只告诉我应该使用API​​密钥.

我想要的是什么:

  • 应用程序应该直接连接到Google - 它们应该能够像浏览器中的普通搜索一样调节配额.
  • 不在应用代码中存储API密钥.这是一个非常简单而又诱人的解决方案,但没有.
  • 无需登录.即使没有帐号也可以搜索YouTube,因此应该可以通过API进行搜索.
  • 不使用像Selenium这样的浏览器.编写和维护这些东西很慢,很痛苦.

我觉得我对这些东西并不熟悉,而且某处有明显的解决方案; 毕竟,您可以随时随地通过浏览器进行YouTube搜索.如何从桌面应用程序执行此操作?

Sou*_* De 0

您可以使用无头浏览器,例如 PhantomJS、Selenium webdriver 或 Headless Chromium 等。您可以在无头模式下呈现 Web 搜索结果,然后可以像普通浏览器一样从那里提取结果。我个人没有将它们与 C++ 一起使用,但我很确定它们也有 C++ 绑定。