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

时间:2014-05-26 07:16:31

标签: google-chrome-extension google-drive-api google-spreadsheet-api

我想编写一个Chrome扩展程序,它使用content script将一些JavaScript注入特定网页,使用CSS选择器擦除一些数据,最后将数据存储在Google表格中。

我已经编写了一个Chrome扩展程序(content script)来抓取HTML页面,我不清楚的是如何最好地将数据插入Google表格。

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

我确定了三个选项。在最高级别提出,他们是:

  1. 通过使用内容脚本抓取数据并在后台脚本中使用API​​来执行Chrome扩展程序中的所有操作。
  2. 对写入的自定义服务器执行HTTP POST 到Google表格。
  3. 将表格发布为 带有Google Apps脚本“后端”的网络应用,以及来自Chrome扩展程序的HTTP POST。
  4. 我赞成选项1,因为它是独立的。我的问题是:

    • 已经用尽了解决方案域名?
    • 我赞成选项1,因为它是 自足,是否有任何理由支持选项2或3?
    • 可以直接在Chrome上使用Google Spreadsheet API 背景脚本?

1 个答案:

答案 0 :(得分:4)

好的,我现在回答问题已经清理完了。 你应该去(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/"),并在Google控制台中创建正确的client_id,并将其指向正确的扩展ID。 见s.o.回答(由我:)你可能用client_id运行的问题: keep getting kicked out my google login when using chrome.identity api

要写入电子表格,您可以使用行Feed或单元格Feed。确保了解每个的利弊。更新:或使用经过改进的Sheets API:https://developers.google.com/sheets/

这是一个很好的练习,让你自己工作,所以你知道什么事情正在发生。如果失败了,请抓住我的" Plus for Trello"的源代码。从github扩展并看看它做了什么。