Google Calendar API V3 - 插入日历

时间:2013-08-31 19:59:35

标签: ruby-on-rails ruby json calendar google-calendar-api

我正在使用Google日历API并遇到了这个问题:

Google Calendar V3 Insert

Ruby代码似乎不是Ruby代码,因此我将calendar_list和calendar.get中的信息移植到此代码中。我不确定为什么参数摘要没有被选为标题。

def create      
  @auth = request.env["omniauth.auth"]
  @token = @auth["credentials"]["token"]
  client = Google::APIClient.new
  client.authorization.access_token = @token
  service = client.discovered_api('calendar', 'v3')
  @result = client.execute(
    :api_method => service.calendars.insert,
    :parameters => {"summary" => 'Calendar Title'},
    :headers => {'Content-Type' => 'application/json'})
end

导致错误

--- !ruby/object:Google::APIClient::Schema::Calendar::V3::Calendar
data:
  error:
    errors:
    - domain: global
      reason: required
      message: Missing title.
    code: 400
    message: Missing title.

1 个答案:

答案 0 :(得分:3)

老实说,我没有尝试使用ruby的谷歌api,但是在查看你的错误和google documentation我相信摘要等于标题(如你所说)。

此外,在查看其他examples of inserts(可能不是日历)时,我注意到API可以采用:body属性,可能(在您的情况下)包含实际的日历数据(即“摘要”)。 here它实际上提到了在tryit下请求“body”。

所以,我没有尝试过,但我会尝试以下内容:

  @result = client.execute(
    :api_method => service.calendars.insert,
    :parameters => # not sure what parameters the insert needs,
    :body => JSON.dump(cal), # where cal is the object containing at least "summary".
    :headers => {'Content-Type' => 'application/json'})