2013-11-20 4 views
1

В настоящее время у меня есть XML-файл, который необходимо отправить в Google, чтобы обновить ячейку в моей рабочей таблице/электронной таблице. Я написал XML с библиотекой, и я надеюсь, что он в правильном формате, как спрашивает Google's Spreadsheet API.Протокол Google Spreadsheet «Позиция ячейки не может быть обновлена».

После обучения this я получил сообщение о том, что «позиция ячейки не может быть обновлена». Я не уверен, что часть я сделал неправильно, но вот то, как я осуществил вызов к API в Objective-C:

-(void) callAPI:(NSString *)apiURL withHttpMethod:(HTTPMethod)method XMLString:(NSString *) xml 
{ 

NSString *urlString = [NSString stringWithFormat:@"%@?access_token=%@", apiURL, _accessTokenInfoDictionary[@"access_token"]]; 
NSLog(@"URLString: %@", urlString); 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] 
           initWithURL:[NSURL 
              URLWithString:urlString]]; 
if (method == PUT) { 

    [request setHTTPMethod:@"PUT"]; 

    [request setValue:@"application/atom+xml" forHTTPHeaderField:@"Content-Type"]; 

    [request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[xml length]] forHTTPHeaderField:@"Content-length"]; 

    [request setHTTPBody:[xml dataUsingEncoding:NSUTF8StringEncoding]]; 

    [self makeRequest:request]; 
    } 

} 

Я использую OAuth 2 с помощью this, но он не обрабатывает XML файлов, поэтому я должен реализовать метод для одного.

файл XML, который пишет приложение выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8" ?> 
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gs="http://schemas.google.com/spreadsheets/2006"> 
<id>https://spreadsheets.google.com/feeds/cells/theworksheetid/od6/private/full/R3C1</id> 
<link rel="edit" type="application/atom+xml" href="https://spreadsheets.google.com/feeds/cells/theworksheetid/od6/private/full/R3C1/15d60i" /> 
<gs:cell row="2" col="4" inputValue="Testing with XML Writer!!" /> 
</entry> 

маркер доступа метод callAPI генерирует выглядит следующим образом:

https://spreadsheets.google.com/feeds/cells/theworksheetid/od6/private/full/R3C1/15d60i?access_token=some_access_token 

Таким образом, я не уверен, если это способ, которым я реализовал этот метод, или если это файл XML или токен доступа, который не позволяет мне обновлять ячейку, но любая помощь будет делать, спасибо.

ответ

1

Проблема решена. Проблема заключалась в том, что строка и столбец из созданного XML-файла не соответствовали строке и столбцу из этой записи ячейки, которая была предоставлена ​​мне. Так что все, что мне нужно было сделать, это совместить их, отправить XML и tada, теперь я могу редактировать ячейки!

Смежные вопросы