Добавить, обновить работает, но как добавить с помощью iOS Google Sheets API v4?

Я пытался реализовать базовое приложение для iOS, которое будет записывать в электронную таблицу Google при возникновении события. Я начал с документации разработчиков Google здесь: https://developers.google.com/sheets/quickstart/ios и смог заставить все работать, пока не добавлял данные и не обновлял их. Но я не могу найти способ добавить данные (вставить новую строку).

Я использовал метод [self.service fetchObjectByUpdatingObject:... для выполнения вышеизложенного, но метод [self.service fetchObjectByInsertingObject:... отказывается работать с теми же строками.

Справочная документация говорит о append методе для этой цели, но я не нахожу способ вызвать его в iOS. Я испробовал почти все методы Fetch, предоставленные нам в классе GTLService.

Обновление. Я ищу аналог для iOS для выполнения следующих действий, как это сделано на Java: service.spreadsheets().values().append

Мы очень ценим любое руководство по добавлению данных в электронную таблицу.

PS: я также пробовал стандартный подход REST, но всегда возвращал Unauthenticated ошибку. Итак, я отказался от этого и применил вышеупомянутый подход, который работал для добавления, обновления. Дайте мне знать, если кому-то понадобится опубликовать код для добавления, обновления реализации.


person Frost_Mourne    schedule 14.09.2016    source источник
comment
Попробуйте проверить правильность выполнения запросов на авторизацию. Для личных данных: Oauth 2.0, для общедоступных данных: идентификатор, например требуется ключ API. Каждый запрос, который ваше приложение отправляет в Google Sheets API, должен идентифицировать ваше приложение в Google.   -  person Mr.Rebot    schedule 15.09.2016
comment
Вы также можете проверить ответ на этот вопрос SO о Unauthorized запросе на Google Sheet API v4. Надеюсь это поможет!   -  person Mr.Rebot    schedule 15.09.2016
comment
Что ж, я уже попробовал (и сделаю еще раз), если это единственный способ сделать это. В первой части моего вопроса я заставил его работать для добавления и обновления без использования служб REST (с использованием класса GLTService). Нет ли способа добиться добавления, используя тот же подход? Спасибо   -  person Frost_Mourne    schedule 16.09.2016
comment
Я имею в виду, что нет возможности выполнить добавление с помощью библиотеки GoogleAPIClient, которую я использовал для добавления и обновления?   -  person Frost_Mourne    schedule 16.09.2016


Ответы (1)


Быстрый запуск iOS для Sheets API был обновлен для использования более новой версии Objective-C клиентская библиотека, которая включает сгенерированные классы для Google Sheets API. Используя эту новую библиотеку, вы можете выполнить вызов добавления, используя следующий код:

    let spreadsheetId = "..."
    let range = "Sheet1"
    let valueRange = GTLRSheets_ValueRange.init();
    valueRange.values = [
        ["Hello", "World"]
    ]
   let query = GTLRSheetsQuery_SpreadsheetsValuesAppend
            .query(withObject: valueRange, spreadsheetId:spreadsheetId, range:range)
        query.valueInputOption = "USER_ENTERED"
        service.executeQuery(query,
                             delegate: self,
                             didFinish: #selector(displayResultWithTicket(ticket:finishedWithObject:error:)))
person Eric Koleda    schedule 17.09.2016
comment
Ага, этот новый путь - лучший выбор !! Большое спасибо! - person Frost_Mourne; 19.09.2016