数据来自Google Docs API

Data feed from Google Docs API

本文关键字:Docs API Google 数据      更新时间:2023-09-26

我正在尝试使用Google Docs API将电子表格数据作为XML,并最终获得JSON数据。我把URL (http://spreadsheets.google.com/feeds/list/0Aizy-VIdLC0QdDNNRkpfVncxQzZRNG9fMVhueXVMenc/1/private/values)在我的浏览器中,我得到的数据,即使没有登录到谷歌。

当我尝试使用jQuery Ajax时,我得到"page not found"错误。

$.get('http://spreadsheets.google.com/feeds/list/0Aizy-VIdLC0QdDNNRkpfVncxQzZRNG9fMVhueXVMenc/1/private/values', function(data) {
  console.log(data)
});

我猜测同源策略可能是Ajax错误的原因,所以我尝试使用PHP,但我得到了错误。

echo file_get_contents("http://spreadsheets.google.com/feeds/list/0Aizy-VIdLC0QdDNNRkpfVncxQzZRNG9fMVhueXVMenc/1/private/values");

我的目标是得到谷歌文档电子表格数据到一个JSON对象的网页上使用。

如何修复这个错误?

您必须登录才能检索电子表格数据。

登录时访问http://spreadsheet.google.com/.../private/values会得到一个有意义的XML页面。在未登录的情况下尝试加载相同的页面,但是会导致"page not Found"。

根据JQuery响应的响应头,这个错误的唯一原因是没有登录(如下所示)。

WWW-Authenticate: No credentials were included in your request.

相关文档请参见《协议指南》

假设您再次检查URL字符串,原因可能是同源策略。由于浏览器的严格安全策略,您无法从其他域获取数据。

如果您想通过这个,您需要使用不同的方法,例如JSONP。

您可以在Ajax文档页面上阅读更多关于如何在jQuery中实现JSONP的信息。