从 Google Chrome(内容)扩展程序写入 Google Sheet

Jac*_*ack 4 google-chrome-extension google-spreadsheet-api google-drive-api

我想编写一个 Chrome 扩展程序,它利用内容脚本将一些 JavaScript 注入特定网页,使用 CSS 选择器抓取一些数据,最后将数据存储在 Google 表格中。

我编写了一个 Chrome 扩展程序(内容脚本)来抓取 HTML 页面,我不清楚的地方是如何最好地将数据插入到 Google 表格中。

我开始阅读这个主题,很快就被可用的选项所淹没,需要一些澄清和指导。

我已经确定了三个选项。在最高级别上,它们是:

  1. 通过使用内容脚本抓取数据并在后台脚本中使用 API,在 Chrome 扩展程序中完成所有操作。
  2. 对写入 Google 表格的自定义服务器执行 HTTP POST。
  3. 使用 Google Apps 脚本“后端”和来自 Chrome 扩展程序的 HTTP POST 将工作表发布为网络应用程序。

我赞成选项 1,因为它是独立的。我的问题是:

  • 已用尽解决方案域?
  • 我喜欢选项 1,因为它是独立的,有什么好的理由支持选项 2 或 3?
  • 可以直接从 Chrome 后台脚本使用 Google 电子表格 API 吗?

Zig*_*del 5

好的,我现在回答问题了。您应该选择(1),但所有 3 个都是可行的。如果您必须找到做 2 或 3 的理由,那就有。特别是如果您选择 (1),则用户必须登录 Chrome(与登录 gmail 不同)。许多用户不知道,甚至不知道您可以登录 chrome 或福利或分离帐户。

我已经从内容脚本中完成了所有 1,2 和 3(以及手动 oauth2 流程),因为去年 chrome.identity 尚不可用。它已经可用一段时间了,所以是的,您可以从内容脚本中执行此操作,但是执行实际调用的需要是后台页面。您必须放置正确的“范围”(“ https://spreadsheets.google.com/feeds ”、“ https://docs.google.com/feeds ”)

和“权限”(“ https://spreadsheets.google.com/ ”、“ https://docs.google.com/ ”),并在谷歌控制台中创建正确的 client_id 将其指向正确的扩展 ID。看到这样的答案(由我 :) 解决您可能使用 client_id 运行的问题: 使用 chrome.identity api 时不断被踢出我的 google 登录名

要写入电子表格,您可以使用行提要或单元格提要。确保了解每种方法的优缺点。更新:或使用大大改进的 Sheets API:https : //developers.google.com/sheets/

让它自己工作是一个很好的练习,这样你就知道发生了什么。如果失败,请从 github 获取我的“Plus for Trello”扩展的源代码,看看它做了什么。