2013-06-18 5 views
5

Sto cercando di trovare tutti i tempi di bus gratuito dal mio calendario principale, ma non riesco a ottenere la query per riconoscere i miei parametri.La chiamata di Google Freebusy api nei binari non riconosce i parametri

Nel mio regolatore ho:

@freetimes = client.execute(
    :api_method => service.freebusy.query, 
    :parameters => { 
    'timeMin' => '2013-06-15T17:06:02.000Z', 
    'timeMax' => '2013-06-29T17:06:02.000Z', 
    'items' => [{'id' => '[email protected]'}] 
    }, 
    :headers => {'Content-Type' => 'application/json'}) 

la risposta che ottengo è:

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

Tuttavia è dimostra che ci sono voluti i parametri, ma non hanno ottenuto attaccato alla query:

--- !ruby/object:Google::APIClient::Result 
request: !ruby/object:Google::APIClient::Request 
    parameters: 
    timeMin: '2013-06-15T17:06:02.000Z' 
    timeMax: '2013-06-29T17:06:02.000Z' 
    items: 
    - id: [email protected] 

Qualsiasi aiuto per risolvere questo sarebbe molto apprezzato!

+0

Ho risolto, in base alla risposta trovata [qui] [1] L'hash doveva essere trasformato in JSON per passare correttamente a differenza di altri metodi di Calendar. [1]: http: //stackoverflow.com/questions/7455744/post-json-to-api-using-rails-and-httparty – tristantoye

risposta

6

risolto questo specificando il corpo della richiesta

client.execute(
    :api_method => service.freebusy.query, 
    :body => JSON.dump({ 
    :timeMin => , 
    :timeMax => , 
    :items => 
    }), 
    :headers => {'Content-Type' => 'application/json'}) 
1

ho avuto un problema simile. Un'alternativa è che puoi creare un oggetto FreeBusyRequest.
Ti piace questa:

body = Google::Apis::CalendarV3::FreeBusyRequest.new 
body.items = [calendar_id] 
body.time_min = "2016-06-29T13:00:00z" 
body.time_max = "2016-06-29T21:00:00z" 
body 

`` ` e poi si può passare in un oggetto CalendarService come questo:

service = Google::Apis::CalendarV3::CalendarService.new 
service.authorization = client 
service.query_freebusy(body) 

questa sarà sicuramente una risposta di stato di 200 con un corpo.