我正在使用Google日历API并遇到了这个问题:
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.
答案 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'})