Google Calendar Ruby API

y4k*_*4ku 3 ruby google-api oauth-2.0 ruby-on-rails-3.1

我正在开发一款需要更新Google日历的应用.

按照Google日历开发人员指南进行操作:

http://code.google.com/apis/calendar/v3/using.html#creating_events

event = {
  'summary' => 'Appointment',
  'location' => 'Somewhere',
  'start' => {
     'dateTime' => '2011-06-03T10:00:00.000-07:00'
  },
  'end' => {
     'dateTime' => '2011-06-03T10:25:00.000-07:00'
  }
}
result = client.execute(:api_method => service.events.insert,
                    :parameters => {'calendarId' => 'primary'},
                    :body => JSON.dump(event),
                    :headers => {'Content-Type' => 'application/json'})
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

TypeError (Expected body to respond to :each.):
Run Code Online (Sandbox Code Playgroud)

我也试过做event.to_json.

DNN*_*NNX 5

只是从我的头顶可能有所帮助的几个建议.如果这些有帮助,请尝试并通知我们.

:body成数组:

result = client.execute(:api_method => service.events.insert,
                    :parameters => {'calendarId' => 'primary'},
                    :body => [JSON.dump(event)],
                    :headers => {'Content-Type' => 'application/json'})
Run Code Online (Sandbox Code Playgroud)

或者使用:body_object而不是body,并且不要对event哈希进行jsonify :

result = client.execute(:api_method => service.events.insert,
                    :parameters => {'calendarId' => 'primary'},
                    :body_object => event,
                    :headers => {'Content-Type' => 'application/json'})
Run Code Online (Sandbox Code Playgroud)

请查看http://code.google.com/p/google-api-ruby-client/source/browse/lib/google/api_client/reference.rb,您就会明白我是如何提出这些建议的.