【发布时间】:2014-08-24 02:18:02
【问题描述】:
我正在写一个Chrome App,我想使用Google Drive API 让我的用户读/写文件到他们自己的Google Drive。
我发现信息表明,从 Chrome 应用程序通过 OAuth 流程的唯一方法是使用 web 视图(请参阅之前的 StackOverflow 问题 Google Drive Realtime API in a Chrome Packaged App)。
这个限制对我来说很有意义,因为要通过 OAuth 流程,您必须加载外部内容,并且从安全角度来看,将其与特权 Chrome 应用代码隔离听起来很重要。
但是,一旦您拥有 OAuth 访问令牌,Chrome 应用中的 JavaScript 似乎应该能够直接向 Google Drive API 发出请求。这不会将任何内容(即 HTML 或 JS)加载到浏览器中,它只是调用远程 API 来读取/写入数据。
但似乎唯一受支持的使用 Google JavaScript API 的方法是远程加载它,使用如下代码:
<script src="https://apis.google.com/js/client.js"></script>
这不起作用,因为不允许 Chrome 应用加载远程内容。
而我只是下载 client.js 并将其放到我的本地 Chrome 应用程序目录中的想法行不通,因为 client.js 似乎假设它可以继续下载/执行更多必要的 JavaScript。
所以基本上,据我所知,Google JavaScript API 似乎不利于提前下载并仅从本地文件运行。这听起来准确吗?如果是这样,应用程序从 API 获取远程数据的唯一方法是在 webview 和主应用程序之间传递消息,这听起来很痛苦。
有什么解决办法吗?或者我是否必须通过网络视图将所有数据传输到 API 或从 API 传输? :(
【问题讨论】:
-
如果你尝试这样的事情会发生什么? stackoverflow.com/a/8578840/1112669
-
"拒绝加载脚本'google-analytics.com/ga.js',因为它违反了以下内容安全策略指令:"default-src 'self' chrome-extension-resource:"。请注意,'script-src ' 没有明确设置,所以 'default-src' 被用作后备。”好主意!
-
好的,这个怎么样? stackoverflow.com/a/8861191/1112669
-
"尝试安装此扩展程序时出现警告:'content_scripts' 仅允许用于扩展程序和旧版打包应用程序,但这是一个打包应用程序。"
标签: javascript google-chrome google-chrome-app