【问题标题】:What YouTube API key to send along with API requests from Apache Cordova app?与来自 Apache Cordova 应用程序的 API 请求一起发送的 YouTube API 密钥是什么?
【发布时间】:2015-04-03 11:13:10
【问题描述】:

YouTube API 提供了两种可能的 API 密钥:

  • 用于服务器应用程序。
  • 用于浏览器应用程序。

我想 浏览器应用程序 是在将 YouTube API 集成到 Apache Cordova 应用程序时正确的应用程序,因为它毕竟是一个浏览器应用程序。

这里的问题是 Apache Cordova 不会对我的域引用者执行请求,这意味着它不适合在我的 Google Developers Console 上配置的 YouTube API 引用者白名单。

AFAIK,如果不修改每个特定于平台的代码,就不可能在 Apache Cordova 应用程序中强制引用,而且我不确定我需要如何处理这种情况。

我的第一个想法是我自己的 RESTful API 可以代理 YouTube 并从服务器端对其进行操作,这将允许我使用 服务器应用程序 方法。

我是否遗漏了什么,是否有替代方法?

顺便说一句,我相信服务器应用程序方法可能会更好,因为我会集中 YouTube API 密钥存储,如果我需要更改它,我不需要强迫所有人下载我的移动应用程序的最新版本.

【问题讨论】:

    标签: cordova rest http youtube-api http-referer


    【解决方案1】:

    服务器应用程序的一种更轻松的方法可能是让您的服务器端应用程序根据请求为cordova 应用程序提供密钥。这样密钥就不会在应用程序中硬编码(您可以在服务器上的密钥之间切换密钥甚至“负载平衡”),但您也不必担心代理部分?

    坦率

    【讨论】:

    • 嗯,但我想像原生应用一样分发我的应用。我的意思是,我不想从互联网上打开应用程序,而只是从本地文件中使用我的 RESTful API..
    • 但您的本地应用程序将与网络通信,我猜?我的观点是,您可以让本地应用程序联系远程服务器应用程序(当然,您必须提供)以在运行时获取 API 密钥,避免在您的应用程序中对密钥进行硬编码。跨度>
    • 啊,我明白了...好吧,但归根结底,代理 YouTube 请求不是更可取,所以我根本不需要共享我的 API 密钥?跨度>
    • 我的意思是......在一天结束的时候,代理非常容易,我可以避免,例如,如果用户已经获得了更新的 api 密钥,则用户需要重新启动应用程序以获取更新的 api 密钥。由于某种原因被丢弃(谁知道)
    • 好吧,代理会使应用程序变慢,因为大量 YT 的 api 肯定会比代理应用程序的单个实例更快?关于必须重新启动应用程序;我会将密钥缓存 x 小时,然后真的重新获取它,所以不需要重新启动?
    【解决方案2】:

    我已选择使用我自己的 RESTful 平台代理对 YouTube API 的请求。

    总之,我对自己的一些 RESTful 服务的资源 URI 执行请求,然后向 YouTube 发出实际请求,一旦完成最后一个请求,我会将结果返回给 Cordova 应用程序。

    我发现这种方法考虑到了安全性,因为我不需要与客户端应用程序共享我的 API 密钥,而且如果我需要生成新的 API 密钥来增强我的安全性,Cordova 应用程序不会哭泣.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-30
      • 2017-12-02
      • 2020-12-23
      • 1970-01-01
      • 2013-12-27
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      相关资源
      最近更新 更多