我正在构建供个人使用的Chrome扩展程序(即不会打包和分发),以将网站中的数据转储到Google表格中。我想点击扩展程序,然后将其处理数据到我的工作表中。我相信这意味着我需要在background.js中执行Oauth流程。
我通过自定义此Google Sheets demo进行了初始授权流程,无法弄清楚如何使其在我的扩展程序中起作用。
我尝试了多种方法,包括使用chrome.identity
API和gapi.client.init()
,并遵循Chrome App sample。没有骰子。
我的一些问题...预先感谢:
key
中包含的manifest.json
在哪里?我已经看到诸如“将已安装manifest.json中的密钥复制到您的源清单中”的说明,但我不明白。 答案 0 :(得分:0)
Chrome扩展程序在多大程度上反映了Chrome应用程序?我了解Chrome应用已被弃用,因此想知道文档是否不一致。
扩展程序和应用程序在许多方面都相似,但是对于您而言,要克服的主要障碍是两者对Google身份验证的处理方式不同。扩展具有权限限制,其中javascript不能在某些地方运行。因此,Chrome扩展程序在background.js中使用chrome.identity建立安全的连接和令牌。实现它的一般过程如下:
是否可以在不打包和上传我的应用程序的情况下执行此操作?控制台中的Oauth凭据页面要求提供Web Store URL
不,主要是因为您需要chrome扩展程序和API相互了解,并在某种意义上被“链接”在一起,以便它们可以安全并正常运行。不过,您仍然可以使用私人应用程序,因为您只需打包(.zip)并将其上传到开发人员信息中心,就可以通过不发布将其排除在公共Chrome商店之外。它可以永远停留在“草稿”阶段供您个人使用。
可以在扩展程序中存储Google api.js的副本,还是必须从https://apis.google.com/js/client.js加载它?如果是这样的话, 对于Chrome应用示例,如何从manifest.json中获取密钥?我已经看到诸如“将已安装manifest.json中的密钥复制到您的源清单中”的说明,但我不理解。
您无需在扩展程序中存储副本,您可以将以下内容添加到manifest.json中:
"content_security_policy": "script-src 'self' https://apis.google.com/; object-src 'self'"
,然后在popup.html的底部:
<script src="https://apis.google.com/js/client.js?onload=onGAPILoad"></script>
如果没有指南,这是一个相当混乱的过程; here is the one最终对我来说意义非凡。这个official example from Google也是不错的选择。
有人知道完整的,独立的Chrome扩展程序示例吗?
“自包含”在此处有点棘手,因为清单需要引用您正在使用的OAuth ClientID和API专用的密钥,但是this(下载链接)以及上面的两个链接应该足以使您进入有效的扩展程序。