我正在尝试开发一个应用程序,在那里我从多个客户端获取与某些事务相关的数据.现在我想使用Google电子表格进行一些分析.有什么方法可以使用ASP.Net MVC(使用C#)实现这一点.Google提供OAuth以及当我实施代码时以及当我尝试将数据发送到我从客户端收到的Google电子表格时.但是,当我这样做时,对于每个新客户,Google都会要求提供登录凭据.客户输入自己的凭据,而Google工作表则改为常用工作表,使用客户端自己的工作表.因此,我的目的没有解决.有什么办法可以做到这一点.我似乎也没有在Google上找到适当的文档.请提供一些实施此建议的建议.提前致谢.
小智 15
如果您只想要一个只读数据库,这可以很容易地完成. 您必须将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
然后,您只需访问此URL并将所有数据作为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));
});
Run Code Online (Sandbox Code Playgroud)
你会得到一个长json结构.相关数据位于data.feed.entry中.那里你会有很多条目.在每一个上你都有一个"内容"属性,在其中有一个"$ t"属性.这些将为您提供所有细胞.因此,要获得第一行,您必须获取data.feed.entry [0] .content.$ t.
希望能帮助到你.
这可以使用Google Apps脚本完成.特别是,您可以使用Google表格中的" 绑定 "脚本(即在您希望创建为"后端"的工作表的上下文中创建的脚本)来实现此目的,然后将其发布为" Web应用程序 "脚本.当您发布它时,您可以使用电子表格所有者的权限(而不是调用该URL的用户的权限)来执行它,这不需要最终用户明确授权自己(因为它是脚本发布者的凭据,而不是正在使用的用户凭据).
需要注意的是,尽管这一点(并且通常建立在Google Apps脚本之上)对于中小型应用来说是一种合理的方法,但您可能会发现使用Google云平台(在这种特殊情况下,云端)数据存储区)是针对小型到大型应用程序的更好,更具可扩展性的解决方案.也就是说,如果你是原型制作或创建一个不太可能在一夜之间起火的内部工具,我会选择你认为更方便/更简单的方法; 如果你正在创建一个可能会遇到"成功灾难"的应用程序,我会选择使用Cloud Platform.