将Google表格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."
答案 0 :(得分:0)
您似乎在调用错误的网址。您的网址构造如下:
let url = String(format:"%@/%@/values/%@", baseUrl, spreadsheetId, range)
这将导致:
http://sheets.googleapis.com/spreadsheets/{spreadsheet_id}/values/{range}
...但是您正在尝试使用AppendCellsRequest对象,而value集合并不支持该对象。链接中的每个Request对象都描述了一个属于batchUpdate调用的request body的对象。有关详细信息,请参阅Updating Spreadsheets指南。