我使用 Google Spreadsheet API 将文档从一个帐户复制到另一个帐户,然后我想返回新创建的电子表格的 key 。
复制是通过检索模板电子表格并使用 SpreadsheetEntry newDoc = new SpreadsheetEntry();
创建一个新电子表格来完成的。然后设置id
将新的电子表格添加到模板电子表格 newDoc.setId(template.getId());
。然后我插入新的电子表格
newDoc = service.insert(new URL("https://docs.google.com/feeds/default/private/full"), newDoc);
我想向调用者返回两件事:指向新创建的电子表格及其 key 的链接。
我通过newDoc.getSpreadsheetLink().getHref();
获得第一个它返回 https://docs.google.com/a/bridgeworks.nl/spreadsheet/ccc?key=0Asl_Vu_YG4J-dDc5NHpwTFVRZFNiVENnRUxOb21XLVE
然后我打电话newDoc.getKey();
它返回 spreadsheet%3A0Asl_Vu_YG4J-dDc5NHpwTFVRZFNiVENnRUxOb21XLVE
key 前面似乎是 spreadsheet%3A
。但为什么?我可以安全地删除它并只返回 key 吗?
如果我使用
URL worksheetUrl = urlFactory.getWorksheetFeedUrl("0Asl_Vu_YG4J-dDc5NHpwTFVRZFNiVENnRUxOb21XLVE", "private", "full");
成功了,但是
URL worksheetUrl = urlFactory.getWorksheetFeedUrl("spreadsheet%3A0Asl_Vu_YG4J-dDc5NHpwTFVRZFNiVENnRUxOb21XLVE", "private", "full");
失败
最佳答案
文档列表 API 定义了两种类型的 ID:资源 ID 和无类型资源 ID。前者的格式为[type]:[id],而后者的格式仅为[id]:
https://developers.google.com/google-apps/documents-list/#terminology_used_in_this_guide
您可以安全地从类型化资源 ID 中删除 [type] 部分以获得非类型化资源 ID。
关于java - SpreadsheetEntry.getKey() 返回前面带有 'spreadsheet%3A' 的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12066738/