【问题标题】:SpreadsheetEntry.getKey() returns a key preceded by 'spreadsheet%3A'SpreadsheetEntry.getKey() 返回一个以 'spreadsheet%3A' 开头的键
【发布时间】:2012-08-22 05:24:39
【问题描述】:

我使用 Google 电子表格 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");

失败

【问题讨论】:

    标签: java google-api google-sheets google-spreadsheet-api


    【解决方案1】:

    文档列表 API 定义了两种类型的 ID:资源 ID 和无类型资源 ID。前者的格式是[type]:[id],而后者只是[id]:

    https://developers.google.com/google-apps/documents-list/#terminology_used_in_this_guide

    您可以安全地从已键入的资源 ID 中删除 [type] 部分以获取未键入的资源 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-07
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-02
      • 1970-01-01
      相关资源
      最近更新 更多