【发布时间】:2016-08-11 16:10:18
【问题描述】:
我正在尝试使用适用于 iOS 的 google sheet API 进行批量更新,但在 'data[0].values[0]' (type.googleapis.com/google.protobuf.ListValue) 处收到错误无效值,
这是我的代码
NSString *baseUrl = @"https://sheets.googleapis.com/v4/spreadsheets/";
NSString *spreadsheetId = @"1tJd4toWFxmHAEOeONauRPcuH_rWJOESLQT7TvCIK0x0";
baseUrl= [baseUrl stringByAppendingString:spreadsheetId];
baseUrl = [baseUrl stringByAppendingString:@"/values:batchUpdate/"];
NSMutableDictionary * params=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"USER_ENTERED",@"valueInputOption", nil];
NSURL *postURL=[GTLUtilities URLWithString:baseUrl queryParameters:params];
NSLog(@"base url is %@", postURL);
GTLObject * body=[[GTLObject alloc]init];
NSMutableArray * titleArray=[[NSMutableArray alloc]initWithObjects:@"Customer ID",@"Customer Name",@"Latitude",@"Longitude" ,@"Last_Updated_At",nil];
NSMutableArray * wheelArray2=[[NSMutableArray alloc]initWithObjects:@"rt",@"SHJ",@"150.00",@"100.00",@"2:00:00", nil];
//[contentArray addObject:titleArray];
NSMutableDictionary * batchParams=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"USER_ENTERED",@"valueInputOption", nil];
NSMutableArray * batchParametersContentArray=[[NSMutableArray alloc]init];
NSMutableDictionary* batchParametersTitlesDict=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Sheet1!A1:E1",@"range",@"COLUMNS",@"majorDimension",titleArray,@"values", nil];
NSMutableDictionary* batchParametersContentDict=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Sheet1!A7:E7",@"range",@"ROWS",@"majorDimension",wheelArray2,@"values", nil];
[batchParametersContentArray addObject:batchParametersTitlesDict];
[batchParametersContentArray addObject:batchParametersContentDict];
[batchParams setObject:batchParametersContentArray forKey:@"data"];
NSLog(@"batch params are %@",batchParams);
body.JSON=batchParams;
[self.service fetchObjectByInsertingObject:body forURL:postURL completionHandler:^(GTLServiceTicket *ticket, id object, NSError *error) {
if (error==nil) {
NSLog(@"batch performed successfully");
}
else
{
NSLog(@"error is %@", error);
}
}];
我的请求参数是
batch params are {
data = (
{
majorDimension = COLUMNS;
range = "Sheet1!A1:E1";
values = (
"Customer ID",
"Customer Name",
Latitude,
Longitude,
"Last_Updated_At"
);
},
{
majorDimension = ROWS;
range = "Sheet1!A7:E7";
values = (
rt,
SHJ,
"150.00",
"100.00",
"2:00:00"
);
}
);
valueInputOption = "USER_ENTERED";
}
错误是
error is Error Domain=com.google.GTLJSONRPCErrorDomain Code=400 "(Invalid value at 'data[0].values[0]' (type.googleapis.com/google.protobuf.ListValue), "Customer ID"
'data[0].values[1]' (type.googleapis.com/google.protobuf.ListValue) 中的值无效,“客户名称” 'data[0].values[2]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“纬度” 'data[0].values[3]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“经度” 'data[0].values[4]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“Last_Updated_At” 'data[1].values[0]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“rt” 'data[1].values[1]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“SHJ” 'data[1].values[2]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“150.00” 'data[1].values[3]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“100.00” 'data[1].values[4]' 处的值无效(type.googleapis.com/google.protobuf.ListValue),“2:00:00”)” UserInfo={error='data[0] 处的值无效.values[0]' (type.googleapis.com/google.protobuf.ListValue), "客户 ID" 'data[0].values[1]' (type.googleapis.com/google.protobuf.ListValue) 中的值无效,“客户名称” 'data[0].values[2]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“纬度” 'data[0].values[3]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“经度” 'data[0].values[4]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“Last_Updated_At” 'data[1].values[0]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“rt” 'data[1].values[1]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“SHJ” 'data[1].values[2]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“150.00” 'data[1].values[3]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“100.00” 'data[1].values[4]' 处的值无效(type.googleapis.com/google.protobuf.ListValue),“2:00:00”,NSLocalizedFailureReason=('data[0].values[ 处的值无效0]' (type.googleapis.com/google.protobuf.ListValue), "客户 ID" 'data[0].values[1]' (type.googleapis.com/google.protobuf.ListValue) 中的值无效,“客户名称” 'data[0].values[2]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“纬度” 'data[0].values[3]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“经度” 'data[0].values[4]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“Last_Updated_At” 'data[1].values[0]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“rt” 'data[1].values[1]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“SHJ” 'data[1].values[2]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“150.00” 'data[1].values[3]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“100.00” 'data[1].values[4]' (type.googleapis.com/google.protobuf.ListValue), "2:00:00") 处的值无效,GTLStructuredError=GTLErrorObject 0x7f89ca465990: {code:400 message:"Invalid 'data[0].values[0]' 处的值(type.googleapis.com/google.protobuf.ListValue),“客户 ID” 'data[0].values[1]' (type.googleapis.com/google.protobuf.ListValue) 中的值无效,“客户名称” 'data[0].values[2]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“纬度” 'data[0].values[3]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“经度” 'data[0].values[4]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“Last_Updated_At” 'data[1].values[0]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“rt” 'data[1].values[1]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“SHJ” 'data[1].values[2]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“150.00” 'data[1].values[3]' (type.googleapis.com/google.protobuf.ListValue) 处的值无效,“100.00” 'data[1].values[4]' 处的值无效(type.googleapis.com/google.protobuf.ListValue),“2:00:00”错误?:[1] 状态?:“INVALID_ARGUMENT”}}
【问题讨论】:
标签: ios google-api google-api-client google-sheets-api