【问题标题】:Creating a Google Sheets spreadsheet with developer metadata using the Sheets API使用 Sheets API 创建包含开发人员元数据的 Google Sheets 电子表格
【发布时间】:2018-05-28 01:43:25
【问题描述】:

我对以编程方式在 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"
  }
}

【问题讨论】:

标签: google-sheets google-sheets-api google-workspace


【解决方案1】:

我也遇到过同样的问题,我完全放弃了。后来,我尝试了spreadsheet下提供的“batchUpdate”API。 “Requests”下的“种类”字段之一采用值 - createDeveloperMetadata

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

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

希望这会有所帮助。

【讨论】:

  • 感谢您的建议!最后,我最终以不同的方式处理事情,并完全避免使用工作表元数据。不过,如果我将来需要使用元数据,这将非常有帮助!
猜你喜欢
  • 2018-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
  • 1970-01-01
  • 2017-09-25
  • 1970-01-01
相关资源
最近更新 更多