Я использую пример из https://developers.google.com/google-apps/calendar/v3/reference/events/insertGoogle Calendar V3 рубин API вставка событие
event = Google::Apis::CalendarV3::Event.new{
summary:'Google I/O 2015',
location:'800 Howard St., San Francisco, CA 94103',
description:'A chance to hear more about Google\'s developer products.',
start: {
date_time: '2015-05-28T09:00:00-07:00',
time_zone:'America/Los_Angeles',
},
end: {
date_time:'2015-05-28T17:00:00-07:00',
time_zone:'America/Los_Angeles',
}
}
result = service.insert_event(calendar_id, event)
Однако я получил ошибку:
wwtlf:~/workspace $ ruby test.rb
/usr/local/rvm/gems/ruby-2.3.0/gems/google-api-client-0.9.1/lib/google/apis/core/http_command.rb:202:in `check_status': required: Missing end time. (Google::Apis::ClientError)
from /usr/local/rvm/gems/ruby-2.3.0/gems/google-api-client-0.9.1/lib/google/apis/core/api_command.rb:103:in `check_status'
from /usr/local/rvm/gems/ruby-2.3.0/gems/google-api-client-0.9.1/lib/google/apis/core/http_command.rb:170:in `process_response'
from /usr/local/rvm/gems/ruby-2.3.0/gems/google-api-client-0.9.1/lib/google/apis/core/http_command.rb:275:in `execute_once'
from /usr/local/rvm/gems/ruby-2.3.0/gems/google-api-client-0.9.1/lib/google/apis/core/http_command.rb:107:in `block (2 levels) in execute'
from /usr/local/rvm/gems/ruby-2.3.0/gems/retriable-2.1.0/lib/retriable.rb:54:in `block in retriable'
from /usr/local/rvm/gems/ruby-2.3.0/gems/retriable-2.1.0/lib/retriable.rb:48:in `times'
from /usr/local/rvm/gems/ruby-2.3.0/gems/retriable-2.1.0/lib/retriable.rb:48:in `retriable'
from /usr/local/rvm/gems/ruby-2.3.0/gems/google-api-client-0.9.1/lib/google/apis/core/http_command.rb:104:in `block in execute'
from /usr/local/rvm/gems/ruby-2.3.0/gems/retriable-2.1.0/lib/retriable.rb:54:in `block in retriable'
from /usr/local/rvm/gems/ruby-2.3.0/gems/retriable-2.1.0/lib/retriable.rb:48:in `times'
from /usr/local/rvm/gems/ruby-2.3.0/gems/retriable-2.1.0/lib/retriable.rb:48:in `retriable'
from /usr/local/rvm/gems/ruby-2.3.0/gems/google-api-client-0.9.1/lib/google/apis/core/http_command.rb:96:in `execute'
from /usr/local/rvm/gems/ruby-2.3.0/gems/google-api-client-0.9.1/lib/google/apis/core/base_service.rb:267:in `execute_or_queue_command'
from /usr/local/rvm/gems/ruby-2.3.0/gems/google-api-client-0.9.1/generated/google/apis/calendar_v3/service.rb:1207:in `insert_event'
Что плохое объект события из примера? Я попытался использовать dateTime insted date_time, но ошибка такая же.
UPD: Оригинальный пример:
event = Google::Apis::CalendarV3::Event.new{
summary: 'Google I/O 2015',
location: '800 Howard St., San Francisco, CA 94103',
description: 'A chance to hear more about Google\'s developer products.',
start: {
date_time: '2015-05-28T09:00:00-07:00',
time_zone: 'America/Los_Angeles',
},
end: {
date_time: '2015-05-28T17:00:00-07:00',
time_zone: 'America/Los_Angeles',
},
recurrence: [
'RRULE:FREQ=DAILY;COUNT=2'
],
attendees: [
{email: '[email protected]'},
{email: '[email protected]'},
],
reminders: {
use_default: false,
overrides: [
{method' => 'email', 'minutes: 24 * 60},
{method' => 'popup', 'minutes: 10},
],
},
}
Очевидно, что существует много синтаксических ошибок. (пропущенный ') метод' => 'всплывающего окна', 'минут (упущенные'): 10
Итак, я решил изменить его:
event = Google::Apis::CalendarV3::Event.new{
summary:'Google I/O 2015',
location:'800 Howard St., San Francisco, CA 94103',
description:'A chance to hear more about Google\'s developer products.',
start: {
date_time:'2015-05-28T09:00:00-07:00',
time_zone:'America/Los_Angeles',
},
end: {
date_time:'2015-05-28T17:00:00-07:00',
time_zone:'America/Los_Angeles',
},
recurrence: [
'RRULE:FREQ=DAILY;COUNT=2'
],
attendees: [
{email: '[email protected]'},
{email: '[email protected]'},
],
reminders: {
use_default: false,
overrides: [
{'method' => 'email', 'minutes'=> 24 * 60},
{'method' => 'popup', 'minutes'=> 10},
],
}
}
Но я до сих пор получил http_command.rb: 202 : в `check_status ': требуется: Отсутствует конечное время. (Google :: Apis :: ClientError)
Не могли бы вы попробовать посмотреть (и вставить здесь), какие фактические HTTP reques t есть и что такое тело JSON события в нем? – luc
Отказ от ответственности - не рубиновый dev. По какой-то причине объект 'end' не распознается. Я вижу, что ваш фрагмент кода похож на [образец в документации] (https://developers.google.com/google-apps/calendar/create-events), единственное, что я вижу (кроме некоторых свойств удаляется) является последним свойством ('end'), не заканчивается символом«, », как и другие объекты. Если вы проверяете другие объекты, они выглядят так, как будто они заканчиваются запятой, вы можете проверить это? – adjuremods
Вы можете перенести «решение» из тела вопроса в реальный ответ - нормально отвечать на собственные вопросы в SO. – Nakilon