【问题标题】:Official Google Spreadsheet/Drive usage官方 Google 电子表格/驱动器使用情况
【发布时间】:2016-03-08 09:41:24
【问题描述】:

Google SpreadsheetService 似乎是一项“正在进行的工作”,有时/突然出现缓慢的答案、随机错误消息等。正如一些人已经建议我在使用电子表格 API 时尽可能使用 Google Drive API。但我找不到关于 Google Drive/Spreadsheet API 组合的合适文档。

通过一些调试和试验/错误,我在SpreadsheetEntry 级别创建了一个“入口点”:

String lSpreadsheetFileId = pSpreadsheetFile.getId(); 
String lSpreadsheetUrlString = String.format("https://spreadsheets.google.com/feeds/spreadsheets/%s", lSpreadsheetFileId); 
URL lSpreadsheetUrl = new URL(lSpreadsheetUrlString); 
SpreadsheetEntry lSpreadsheetEntry = mSpreadsheetService.getEntry(lSpreadsheetUrl, SpreadsheetEntry.class);

现在我可以从 SpreadsheetService 或 Google Drive File 上的查询开始。两者都提供SpreadsheetEntry。从这一点来看,这两种情况的代码都是相同的。

这可行,但这是我自己的 Google 黑客解决方案,可能会因界面更新而中断。我看到了一些带有更多“官方”方法的帖子:

urlFactory.getWorksheetFeedUrl(file.getId(), "private", "full"); // (or any other feed url builder). file.getId()

在 Google 电子表格中使用 Google Drive 文件的官方“设计”方式是什么?

我可以得到一些真实的代码示例(更多;“只使用提要”等)吗?

【问题讨论】:

  • 欢迎以什么是 X 的最佳方式是基于意见或广泛的问题开始堆叠问题。我们也不提供代码示例。如果您的代码有问题,我们可以提供帮助,但从外观上看,您的代码可以正常工作。请阅读stackoverflow.com/help/how-to-ask
  • 是的,代码正在运行(现在),但我正在寻找 Google 真正“设计”的解决方案,而不是我自己的黑客攻击。
  • Google Sheets 是旧的 gdata API Google 宁愿您使用应用脚本,这就是为什么您找不到任何有关如何使用它的文档或教程的原因。

标签: java google-app-engine google-drive-api google-spreadsheet-api


【解决方案1】:

Google 电子表格服务已被弃用。使用 Google Apps Script API 代替您的集成 Google Drive 和电子表格的实现。使用 Apps Script API,您几乎可以在您的应用程序中实现大部分 Google Apps 集成。

【讨论】:

  • 你从哪里得到它已被弃用的信息? Sheets API Page 只是说脚本 API 更强大。我仍然希望有一个 reals Sheets API;使用 Scripts API,我必须为所有简单任务实现代理脚本,例如读取几个单元格...
  • @AlexR 我们还弃用了电子表格、联系人、文档列表和 Freebase API 的非当前版本 developers.googleblog.com/2012/04/…
  • 这应该是指(非当前)版本 1 和 2,而不是当前版本 3(参见 version overview
  • @Alex 确实是一个真正的电子表格客户端 API 似乎比脚本包装器更好......谷歌是否正在为这种脚本语言转储 Java?
  • @SwagBomb....你能不能在谷歌表格上提供最新的工作样本与 iOS 目标-c
【解决方案2】:

如果您确实需要SpreadsheetEntry,则必须筛选SpreadsheetFeed 并寻找密钥。您可以实现标题查询以减少要检查的电子表格数量:

    SpreadsheetQuery spreadsheetQuery 
    = new SpreadsheetQuery(urlFactory.getSpreadsheetsFeedUrl());
    spreadsheetQuery.setTitleQuery(spreadsheet);
    SpreadsheetFeed spreadsheetFeed = myService.query(spreadsheetQuery, SpreadsheetFeed.class);

似乎没有对密钥的查询。 但是,几乎没有什么功能需要 SpreadsheetEntry 并且不能使用 Drive API 或更低级别的提要(Worksheed、List 或 CellFeed)来完成

【讨论】:

    猜你喜欢
    • 2014-12-13
    • 2015-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    相关资源
    最近更新 更多