java - SpreadsheetEntry.getKey() 返回前面带有 'spreadsheet%3A' 的键

标签 java google-api google-sheets google-sheets-api

我使用 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/

相关文章:

java - 如何在android中晃动时调用谷歌地图?

date - 使用单元格格式值的 IF 语句

google-sheets - 谷歌地理图表 : LatLong format changes when using a formula?

java - 如何设置 ScrollView 的X Y和高度宽度

java - 使用 Mockito 和 JUnit 进行测试时的奇怪行为

java - 上传文件时所需的 MultipartFile 参数 'file' 不存在

google-api - Google API Explorer 和 Google Identity Toolkit API 无法正常工作

java - 我不想四舍五入 double 值,我该怎么办?

angular - reCAPTCHA v3 无法正常工作 Angular 6 - 执行错误

google-sheets - Google Sheets - 在上一个工作表的同一单元格中获取值