通过浏览器中运行的 JavaScript 将数据推送到 Google 电子表格

IT技术 javascript jsonp google-sheets cors google-spreadsheet-api
2021-03-04 13:43:09

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

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

然后我决定直接使用Google Spreadsheets API version 3.0我设法使用jQuery检索用户的电子表格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. 而且 Google 服务器似乎不支持CORS. 我在浏览器中收到以下错误:

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

感谢您查看这个。

2个回答

带屏幕截图的分步说明

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

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

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

HTML 表单:

联系表

结果(工作表中的行):

工作表中的行

希望它可以帮助其他人。

超级棒的剧本。我只是在大约30 分钟内完成了此操作mockuptiger.com/contact
2021-05-08 13:43:09

我也在调查这个大约 8 个月。我偶然发现了 Martin Hawskey 写的一篇博文我按照这里的指南,我能够设置一个 HTML 表单发布到电子表格。

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

演示

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

编辑

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

我仍然收到 CORS 错误,在您链接的新 @mhawksey 帖子中,我看不到任何与解决它相关的内容。
2021-04-21 13:43:09
更新了此处引用的示例以允许真正的 ajax 提交,例如没有隐藏的 iframe。参见mash.hawksey.info/2014/07/...
2021-05-10 13:43:09
我根据您的建议建立了我的解决方案。谢谢你。
2021-05-15 13:43:09