【问题标题】:Google Sheets iOS - Map documentation to SDKGoogle Sheets iOS - 将文档映射到 SDK
【发布时间】:2016-06-03 21:22:05
【问题描述】:

将 Google Sheets V4 文档映射到 SDK 方法非常困难。例如:

要将行附加到电子表格,documentation states 表示存在请求资源,例如

"appendCells": {
    object(AppendCellsRequest)
  },

AppendCellsRequest 在哪里

{
  "sheetId": number,
  "rows": [
    {
      object(RowData)
    }
  ],
  "fields": string,
}

但是,如果我按如下方式使用 SDK:

    let range = "Sheet1"
    let url = String(format:"%@/%@/values/%@", baseUrl, spreadsheetId, range)
    let params = ["valueInputOption":"RAW"]
    let fullUrl = GTLUtilities.URLWithString(url, queryParameters: params)

    let body = GTLObject()

    body.JSON = [ "appendCells" : [
                        "sheetId" : 0,
                        "rows"    : [[value, value, value, value]],
                        "fields"  : "*"
                     ]]

    driveService.fetchObjectByUpdatingObject(body, forURL: fullUrl, completionHandler: {
            (ticket:GTLServiceTicket!, object:AnyObject!, error:NSError!) in

    })

这会失败并出现错误:

"Invalid JSON payload received. Unknown name "append_cells" at 'data': Cannot find field."

【问题讨论】:

  • post 中发现了类似的问题。它建议确保您的请求正文数据中包含的JSON representation 的语法正确,并且您在PATCH request 中提供的用于更新位置的字段值是准确的。

标签: ios swift google-sheets-api


【解决方案1】:

您似乎调用了错误的 URL。您的网址构造为:

let url = String(format:"%@/%@/values/%@", baseUrl, spreadsheetId, range)

这将导致:

http://sheets.googleapis.com/spreadsheets/{spreadsheet_id}/values/{range}

... 但您正在尝试使用值集合不支持的 AppendCellsRequest 对象。链接中的每个 Request 对象都描述了一个属于 batchUpdate 调用的request body 的对象。如需更多信息,请参阅Updating Spreadsheets 指南。

【讨论】:

    猜你喜欢
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多