2012-02-26 11 views
8

Estoy intentando crear un calendario a través de la API de JavaScript de Google. la autenticación OAuth está trabajando muy bien: Soy capaz de obtener una lista de los calendarios usando:Google Calendar.Insertar API que devuelve 400 'requerido'

gapi.client.calendar.calendarList.list(); 

Sin embargo, cuando intento crear un calendario con:

gapi.client.calendar.calendars.insert(
{ 
    "summary": "A New Calendar", 
    "description": "Generated by Ben", 
    "timezone" : "Australia/Sydney" 
}); 

me sale:

{ 
    "error": { 
    "code": 400, 
    "message": "Required", 
    "data": [ 
    { 
    "domain": "global", 
    "reason": "required", 
    "message": "Required" 
    } 
    ] 
}, 
"id": "gapiRpc" 
} 

En doco for other APIs muestra esta respuesta, pero con una lista de los argumentos necesarios que faltan.

¿Hay alguna manera de determinar qué parámetro 'requerido' me falta? Lo probé con el API Explorer y mis parámetros parecen funcionar bien.

Respuesta

21

Finalmente lo descubrí. Las propiedades tienen que estar en un 'recurso' objeto:

gapi.client.calendar.calendars.insert(
{ 
    "resource" : 
    {"summary": "A New Calendar", 
    "description": "Generated by Ben", 
    "timezone" : "Australia/Sydney"} 
}); 

El mana no menciona esto, pero si nos fijamos en la respuesta a la llamada inicial a gapi.auth.authorize encontrará JSON que describe todo el API para el alcance que has especificado

+2

+1 ¡Muy útil! – joevallender

+1

muchas gracias ... realmente me ayudó ... no pude encontrar ninguna documentación para el mismo .. –

+1

GRAN tiempo de ahorro de éste, muchas gracias! – Ben