我们可以将Google电子表格用作后端数据库

时间:2016-01-22 04:21:20

标签: google-sheets

我正在尝试开发一个应用程序,在那里我从多个客户端获取与某些事务相关的数据。现在我想使用Google电子表格进行一些分析。有什么方法可以使用ASP.Net MVC(使用C#)实现这一点。 Google提供OAuth以及当我实施代码时以及当我尝试将数据发送到我从客户端收到的Google电子表格时。但是,当我这样做时,对于每个新客户,Google都会要求提供登录凭据。客户输入自己的凭据,而Google工作表则改为常用工作表,使用客户端自己的工作表。因此,我的目的没有解决。有什么办法可以做到这一点。我似乎也没有在Google上找到适当的文档。请提供一些实施此建议的建议。提前谢谢。

6 个答案:

答案 0 :(得分:14)

如果您只想要一个只读数据库,这可以非常轻松地完成。 您必须将自己的Google表格发布到网络,然后从其网址中复制其ID。

例如,我的工作表有此网址:https://docs.google.com/spreadsheets/d/1IHF0mSHs1HdYpIlIzYKG3O8SnAhKU_a6nEJSz04Togk/edit

中间的长字母数字字符串是我的工作表ID。将其复制并将其放在以下URL中,而不是XXXX,如下所示:

https://spreadsheets.google.com/feeds/list/XXXX/1/public/basic?alt=json"

所以最终的网址看起来像这样: https://spreadsheets.google.com/feeds/list/1IHF0mSHs1HdYpIlIzYKG3O8SnAhKU_a6nEJSz04Togk/1/public/basic?alt=json

然后,您只需访问此网址并将所有数据作为json获取。 使用jQuery:

var $url = 'https://spreadsheets.google.com/feeds/list/1IHF0mSHs1HdYpIlIzYKG3O8SnAhKU_a6nEJSz04Togk/1/public/basic?alt=json';
$.getJSON($url,function(data){
    alert(JSON.stringify(data.feed.entry));
});

你会得到一个长json结构。相关数据位于data.feed.entry中。在那里你会有很多条目。在每一个上你都会有一个"内容"财产,在其中," $ t"一。这些将为您提供所有细胞。 因此,要获得第一行,您必须获取data.feed.entry [0] .content。$ t。

希望它有所帮助。

答案 1 :(得分:5)

这可以使用Google Apps Script来完成。特别是,您可以使用Google表格中的“bound”脚本(即在您希望创建为“后端”的工作表的上下文中创建的脚本)来实现此目的,然后将其发布为“web app”脚本。当您发布它时,您可以使用电子表格所有者的权限(而不是调用该URL的用户的权限)来执行它,这不需要最终用户明确授权自己(因为它是脚本发布者的凭据,而不是正在使用的用户凭据。)

应该注意的是,虽然这(并且通常建立在Google Apps脚本之上)对于中小型应用来说是一种合理的方法,但您可能会发现使用Google Cloud Platform(并且,在此特殊情况下,Cloud Datastore)是针对小型到大型应用程序的更好,更具可扩展性的解决方案。也就是说,如果你是原型制作或创建一个不太可能在一夜之间起火的内部工具,我会选择你认为更方便/更简单的方法;如果你正在创建一个可能会遇到“成功灾难”的应用程序,我会选择使用Cloud Platform。

答案 2 :(得分:2)

如果您的工作表是公开的,则无需身份验证即可完成。您可以将google API Visualization与查询语言一起使用,也可以使用Google表格API。 但是,如果您的工作表是私有的,则必须通过服务帐户凭据使用OAuth2身份验证。 为此,您必须创建一个服务帐户(例如,具有项目角色的所有者)。然后,您必须下载client_secret.json文件,该文件将是您在代码中使用的文件。 最后,您必须与您在此文件中收到的电子邮件共享您的电子表格。查看文件,您将看到它。

我做了一个教程。您可以访问http://edba.xyz/google-sheets-as-database。它主要基于PHP,但很容易传输 其他语言。

答案 3 :(得分:1)

我最近一直在开发一个使用Google Sheet作为后端的网站。太好了。速度也是可观的。 我已经将我在google应用脚本上编写的自定义后端与Django应用集成在一起。因此,现在我的网站将用户信息存储在Google表格中。谷歌表代码和Django应用通过Rest API进行交互,可以使用Django端的应用脚本和python请求中的doGet()和doPost()轻松开发该API。一旦构建了必要的结构(如果您是新手,它会花费一些时间进行调整),但是它可以作为您网站的理想数据库。

答案 4 :(得分:0)

您可以使用Kodem.io

Google Sheets As Backend允许您使用Google表格进行CRUD记录。

免责声明:我在Kodem工作

答案 5 :(得分:0)

Google电子表格是一种快速建立数据库原型甚至在某些情况下用于生产的绝佳解决方案。

人们已经意识到了这一潜力,如今有许多工具可以将您的Google电子表格转换为后端api

有一些库,例如node-sheets,可用于从Google电子表格中获取json供稿(只读)

此外,如果您需要完整的独立服务,则可以选择以下付费选项

还有开源选项,例如

它可以通过Docker安装在任何云提供商上,您可以将其指向电子表格,它将动态地将其转换为api。

例如,如果您的电子表格具有以下工作表:

| articles | products | users |

它将自动创建3个端点

GET /articles
GET /products
GET /users

它适用于不需要频繁更改(尽管可以控制更新间隔)的只读api(您可以直接通过电子表格而不是通过代码更新电子表格)