java - 创建表记录 - Google Spreadsheets API

标签 java google-api google-sheets

我正在尝试通过开发人员指南:Java 来学习如何使用 Google Spreadsheets API。我的应用程序可以对电子表格服务进行身份验证,检索基于工作表的提要并创建表格。下一步是创建一个表记录我想要做的事情。我的问题是当我运行应用程序时出现此错误:

Service failure
com.google.gdata.util.InvalidEntryException: Bad Request
[Line 1, Column 429, element entry] Required extension element  http://schemas.google.com/spreadsheets/2006:header not found.

这是创建表的代码部分:

//Creating a table record
String nameValuePairs = "Column A=Rosa";
RecordEntry entryToChange = new RecordEntry();
// Split first by the commas between the different fields.
for (String nameValuePair : nameValuePairs.split(",")) {
    // Then split by the equal sign.
    String[] parts = nameValuePair.split("=", 2);
    String name = parts[0]; // such as "name"
    String value = parts[1]; // such as "Fred"

    entryToChange.addField(new Field(null, name, value));         
}
try {
    myService.insert(tableFeedUrl, entryToChange);
} catch (IOException e) {
    System.err.println("I/0 problem");
    e.printStackTrace();
} catch (ServiceException e) {
    System.err.println("Service failure");
    e.printStackTrace();
}

tableFeedUrl:

tableFeedUrl = factory.getTableFeedUrl(entry.getKey());

条目:

entry = spreadsheets.get(0);

显然问题来自:

myService.insert(tableFeedUrl, entryToChange);

但我不确定也不明白为什么......

感谢您的帮助。

最佳答案

我已经找到解决办法了。我为那些有同样问题的人回答我自己的问题。

我使用:

myService.insert(tableFeedUrl, entryToChange);

“tableFeedUrl”对应于:

http://spreadsheets.google.com/feeds/<key>/tables/

这不是访问表 ( the doc ) 的正确链接。

但是在 Java developers guide请注意,我们必须使用:

myService.insert(recordFeedUrl, entryToChange);

“recordFeedUrl”结果来自:

URL recordFeedUrl = tableEntry.getRecordFeedUrl();

但是方法:getRecordFeedUrl() 不存在... ( the doc )

解决方案是手动创建 URL:

recordFeedUrl = new URL(table.getId().toString().replace("tables", "records"));

所以 URL 对应于表:

https://spreadsheets.google.com/feeds/<key>/records/60

“60”对应 table 号。

希望对你有帮助!

关于java - 创建表记录 - Google Spreadsheets API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3552233/

相关文章:

java - 代理无法实现java.lang.Thread

java - A* 算法 8 谜题

java - TreeCellRenderer 中的标签宽度不正确

node.js - NodeJS 和 Gmail API - 根据 "To:"收件人访问最后 3 封电子邮件

google-sheets - Google 表格中的 COUNTIF 多个 'not' 或 'else' 比 Google 表单响应的条件

google-apps-script - 谷歌表格: Prevent the unchecking of a checkbox after it has been checked

java - 无法通过Java运行命令,但可以通过cmd运行 CreateProcess error=2, 系统找不到指定的文件

java - 使用来自 GAE API 的 endpointscfg 生成 Java 客户端库时出现 HTTP 500 错误

google-api - 使用Adsense API,如何找到admob广告单元id属于哪个应用程序?

google-sheets - 查找列中的最后一个值