2013-08-31 3 views
0

Я играл с Google Calendar API и наткнулся на это:Google Calendar API V3 - Вставка Календарь

Google Calendar V3 Insert

код Рубин не кажется, рубин код, так что я портирован информацию из 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. 

ответ

3

Честно говоря, я не пробовал API Google с рубином, но глядя на ваши ошибки и google documentation Я считаю, что резюме равно названию (как вы заявили).

Кроме того, при взгляде на другое examples of inserts (возможно, не на календаре) Я заметил, что API может принимать атрибут body, который, вероятно, (в вашем случае) содержит фактические данные календаря (т. Е. «Сводка»). И here фактически упоминает запрос «тело» под tryit.

Так опять же, я не пробовал это, но я хотел бы попробовать что-то вроде следующего:

@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'}) 
+0

Спасибо Артур. Для кого-либо еще я поставил параметры как {} и сделал JSON.dump ('summary' => 'test name'), который сгенерировал календарь имен тестов на моем gcal – ebbflowgo

Смежные вопросы