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