#next_sync_token fo События Календаря Google всегда возвращают nil

Я создал 3 события в календаре, затем запускаю

response = @client.execute!(
   :api_method => @calendar_api.events.list,
   :parameters => {
     :calendarId => "primary",
     :maxResults => 10,
     :singleEvents => true,
     :orderBy => 'startTime'}
 )

Я получил 3 элемента, но метод #next_sync_token, вызванный для response.data, возвращает nil (#next_page_token также возвращает nil, но в данном случае это правильно). Я попытался установить для параметра :fields значение «nextSyncToken», но ничего не вышло. Я также сделал несколько обновлений по этим событиям, и #next_sync_token все еще было установлено на ноль. Я ошибаюсь? Может быть, я сделал какую-то ошибку? Вызов только с calendarId в параметрах делает то же самое.


person Janek Kurzydło    schedule 30.11.2015    source источник


Ответы (2)


Избавьтесь от orderBy. Это не задокументировано, но если вы попробуете Google API, вы увидите, что nextSyncToken не возвращается с orderBy: startTime.

Потрачено много времени на один и тот же вопрос.

person Guy de Carufel    schedule 21.12.2015
comment
Это определенно было проблемой для меня! Большое спасибо за публикацию этого. Документы Google Calendar API нуждаются в доработке. - person Sam; 07.01.2016
comment
Спасибо, никогда бы не нашел! - person RealCasually; 14.07.2017
comment
Ух ты. Лама, спасибо, что поделились. Сэкономил мне черт знает сколько времени. - person Brock Klein; 14.08.2018

Результат будет иметь только следующий токен синхронизации на последней странице. Вам нужно просмотреть все страницы (до next_page_token nil), а затем вы найдете токен синхронизации.

person luc    schedule 30.11.2015
comment
Да, это правда, и я это знаю, но здесь у меня всего 3 события, поэтому у меня есть только 1 страница, и она последняя. В этом случае я думаю, что #next_sync_token должен ответить правильным токеном. Я также вижу, что response.body содержит nextSyncToken, поэтому этот метод должен работать. - person Janek Kurzydło; 01.12.2015