使用Sheets API创建包含开发人员元数据的Google表格电子表格

时间:2017-12-14 03:20:52

标签: google-sheets google-sheets-api gsuite

我有兴趣以编程方式在Google表格中创建电子表格。我的一个要求是,我将能够写入和读取与电子表格中的列相关联的开发人员元数据。

我目前在创建开发人员元数据时遇到问题 - 无论是电子表格级别还是与工作表的特定部分相关联。当我将请求发送到create新的电子表格时,我收到了成功的回复,以及创建的电子表格的元数据对象。但是,从此请求返回的对象不包含任何元数据对象(如API文档所示)。

为元数据条目设置显式元数据ID,然后尝试检索它也似乎不起作用(如下所示)。

以下是我一直使用请求发送的JSON有效负载(我最近也使用Google APIs Explorer发送了请求,以便将其与我的代码隔离开来):

{
  "properties": {
    "title": "test 6:19 with sheet metadata"
  },
  "sheets": [
    {
      "properties": {
        "sheetId": 0,
        "title": "Sheet1",
        "index": 0,
        "sheetType": "GRID",
        "gridProperties": {
          "rowCount": 2,
          "columnCount": 2
        }
      },
      "data": [REMOVED_FOR_SPACE],
  "developerMetadata": [
    {
      "location": {
        "spreadsheet": true,
        "locationType": "SPREADSHEET"
      },
      "metadataKey": "questionId",
      "metadataValue": "12345",
      "visibility": "DOCUMENT",
      "metadataId": 12345
    }
  ]
}

此请求收到200,并返回缺少任何开发人员元数据的电子表格对象,如前所述。电子表格按照描述创建,并可通过UI访问。

我怀疑响应可能不包括元数据,尽管有文档。但是,如果我在电子表格中查询上面的元数据ID,我会收到以下回复:

{
  "error": {
    "code": 404,
    "message": "No developer metadata with ID 12345.",
    "status": "NOT_FOUND"
  }
}

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,我完全放弃了。后来,我尝试了电子表格下提供的“batchUpdate”API。 “Requests”下的“kind”字段之一取值 - createDeveloperMetadata

它需要CreateDeveloperMetadataRequest对象,其结构与您在创建电子表格时尝试提供的结构相同。

在使用随机整数作为元数据ID执行此操作时,我得到了200 Response。此外,在开发人员元数据上执行GET,它返回了正确的响应!

希望这有帮助。