如何在 PHP 中访问 Google 电子表格 API?

Posted

技术标签:

【中文标题】如何在 PHP 中访问 Google 电子表格 API?【英文标题】:How do I access the Google Spreadsheets API in PHP? 【发布时间】:2013-12-22 20:11:01 【问题描述】:

从 Google Developer documentation on the Google Spreadsheets API 开始,我发现“提供了多种语言的许多客户端库。”,但 Google 只提供 Java 和 .NET 的客户端库。对于 php 库,他们建议使用 Zend GData。所以,我去了Zend GData repo,Zend 说他们的GData 组件已经停产,并使用Google APIs Client Library for PHP。该库不适用于电子表格 API,因为您必须返回到我开始使用的原始页面。

所以,似乎每个人都在推卸责任。我只需要编写一些 PHP 代码来请求和处理来自 Google 电子表格的数据。我怎么做?请不要在未检查以确保它们是 100% 最新的情况下将我链接到类似的帖子或页面,我已经筛选了数小时的大量帖子,这些帖子都充满了过时和过时的依赖项。

【问题讨论】:

很多人都在使用 Zend:***.com/search?q=zend+spreadsheet 不确定是什么版本。我正在使用 Java,但或多或​​少有同样的问题。我得出的结论是:3.0 API 的版本与“GData”api 差不多。至于我使用 GData 文档的大部分内容。 约西亚,你找到出路了吗?我只是从同样的“问题”开始 @jasa 我最终使用了 tabletop.js,其中包含一些指向 Google 电子表格本身的后备链接,供任何可能禁用或阻止 JS 的人使用。非常容易设置并且效果很好。 github.com/jsoma/tabletop @Josiah Sprague:太好了。非常感谢! farinspace.com/saving-form-data-to-google-spreadsheets 相当简单的实现,对我有用。 【参考方案1】:

您可以使用PHP Google Spreadsheet Client library。

您还需要使用Google APIs Client Library for PHP 来通过 OAuth2 进行身份验证。开发者文档链接在 github 页面上。

【讨论】:

嗨,如何使用 OAuth2 插入行?有什么想法吗? @Subhra 您应该将其作为一个单独的问题提出,而不是作为对答案的评论。 This tutorial 使用答案中的库,看起来非常可靠。它使用 Composer 来引用 asimlqt/php-google-spreadsheet-client 库。【参考方案2】:

感谢此页面上的提示和链接,我想分享我最终在 php 中阅读 google 电子表格时所做的事情。您可以访问 json 格式的电子表格,无需使用 api 或 zend 框架或 gdata 库。 PhP 可以非常轻松地处理 json,这是我可以达到的最简洁的解决方案,因为它不依赖于任何第三方库。

这是获取 json 格式电子表格的示例链接。

https://spreadsheets.google.com/feeds/list/key/1/public/full?alt=json

请注意,如果电子表格是私有的,您仍需要按照身份验证步骤获取访问页面的令牌。就我而言,电子表格是公开的。

您还可以通过提要列表或基于单元格的方式访问电子表格(将 url 中的 list 替换为 cell

您可以在浏览器中尝试链接并查看 json 结果。

【讨论】:

【参考方案3】:

(2016 年 8 月)

截至今年 5 月,您现在有了更好的解决方案……

不再推卸责任:

    GData APIs(以及 Zend GData)是上一代 Google API。虽然并非所有 GData API 都已弃用,但all newer Google APIs使用the Google Data protocol。 有一个"new" Google Sheets API v4(不是 GData])。为了使用新的Sheets API,你需要得到the Google APIs Client Library for PHP,正如其他人已经说过的那样。最新的 API 比以前的任何 API 都更加强大和灵活。这是一个code sample,可以帮助您入门。如果您对 Python 没有“过敏”,我还制作了 a video 与 不同,介绍 API 的示例稍长,并通过以下方式深入了解 its 代码a blogpost 值得你学习。

请注意,Sheets API 允许您创建电子表格和工作表、上传和下载数据,以及在一般意义上以编程方式访问工作表,就像您使用用户界面一样(创建冻结行、执行单元格格式设置、调整行/列的大小、添加数据透视表、创建图表等),但要执行文件级访问,例如上传和下载、导入和导出(与上传和下载相同,但转换为/从 Google Apps 格式),您将请改用Google Drive API。

【讨论】:

以上是关于如何在 PHP 中访问 Google 电子表格 API?的主要内容,如果未能解决你的问题,请参考以下文章

无法访问通过 Google 电子表格 API 通过服务帐户创建的工作表

新 Google 电子表格的 BigQuery 访问权限

使用 Google Data API 使用 C# 访问 Google 电子表格

导入 XML Google 电子表格 - 帮助我编写 PHP 代码

在Google电子表格小工具中,如何写入电子表格?

php 通过php解析Google Drive电子表格数据