24

我正在开发一个 Web 应用程序,我希望允许用户将数据推送到她自己的 Google 电子表格中。

首先,我尝试使用适用于 JavaScript 的 Google API 客户端库,但它似乎没有涵盖电子表格 API(https://developers.google.com/apis-explorer/#p/)。

然后我决定直接使用Google Spreadsheets API 3.0 版。我设法使用jQueryand检索用户的电子表格JSONP

$.ajax({
  url: 'https://spreadsheets.google.com/feeds/spreadsheets/private/full?alt=json-in-script&access_token=' + access_token,
  dataType: 'JSONP',
  success: function(data){
    // use the spreadsheets
  }
});

以同样的方法,我从用户选择的电子表格中检索工作表。然后我必须POST将数据添加到选定的工作表中。问题来了:不能使用JSONP. 而且谷歌服务器好像不支持CORS。我在浏览器中收到以下错误:

XMLHttpRequest cannot load https://spreadsheets.google.com/feeds/... Origin ..mysite.. is not allowed by Access-Control-Allow-Origin.

感谢您查看这个。

4

2 回答 2

42

带有屏幕截图的分步说明

在阅读了Martin Hawskey精彩介绍(将数据从 HTML 表单发送到 Google 电子表格)并看到一些空白/假设之后,我们决定编写一个详细/全面的教程,其中包含一些人拥有的分步说明发现有用:

https://github.com/dwyl/ html - form - send -email-via- google-script -without -server

该脚本将通过HTTP POSTGoogle 电子表格发送的所有数据保存,并可选择将内容转发到电子邮件地址。(如果您想收到新数据的通知,这很有用

HTML 表单:

联系表

结果(工作表中的行):

工作表中的行

希望它可以帮助别人。

于 2016-06-09T15:30:54.967 回答
26

我也在研究这个大约 8 个月。我偶然发现了 Martin Hawskey 写的一篇博文。我按照此处的指南进行操作,并且能够设置发布到电子表格的 HTML 表单。

实际上,您在可以接收数据的电子表格中设置了一个已发布的 Web 应用程序。要解决 CORS 问题,您可以在页面上定位隐藏的 iframe。我会复制这篇文章中的代码,但其中有很多。

演示

我将提供一些建议,我希望在我开始研究这个问题时得到这些建议。如果可以...尝试设置您可以使用的 PHP 服务器。发布数据更加容易和灵活。我现在在工作中虔诚地使用Zend GData,希望我能早点找到它 :)

编辑

Martining Hawskey 已对此进行了更新,以支持 AJAX 提交,而无需使用隐藏的 iframe。见这里

于 2013-11-11T23:48:28.220 回答