Вставка события с API календаря Google nodejs возвращает 400: отсутствует время окончания

Я пытаюсь вставить события через API календаря Google с служебной учетной записью. Цель состоит в том, чтобы иметь один календарь, который просматривают все пользователи: межсерверная настройка.

На данный момент я могу правильно вызвать API календаря и перечислить события в указанном календаре:

var moment = require("moment"),
    googleapis = require("googleapis"),
    googleCal = googleapis.calendar("v3");
    serviceEmail = "********@developer.gserviceaccount.com",
    serviceKeyFile = "./key.pem";

var authClient = new googleapis.auth.JWT(
        serviceEmail,
        serviceKeyFile,
        null,
        ["https://www.googleapis.com/auth/calendar"]
    );

authClient.authorize(function (err, tokens) {
    if (err) {
        console.log(err);
    } else {
        googleCal.events.list({
            auth: authClient,
            calendarId: "********@gmail.com",
            fields: {
                items: ["end","start","summary"]
            }
        }, function (err, CL) {
            if (err) {
                console.log(err);
            } else {
                console.log(CL);
            }
        });
    }
})

Это правильно возвращает объект JSON, в котором перечислены все различные объекты в календаре. Однако, когда я пытаюсь вставить событие непосредственно под вызовом googleCal.events.list:

googleCal.events.insert({
    auth: authClient,
    calendarId: "primary",
    resources: {
        start: {
          dateTime: "2014-07-23T18:25:00.000-07:00",
          timeZone: "America/New_York"
        }, 
        end: {
          dateTime: "2014-07-23T19:25:00.000-07:00",
          timeZone: "America/New_York"
        }, 
        summary: "winning @ life",
        description: "winning @ life description"
    }
}, function (err, something) {
    if (err) {
        console.log(err);
    } else {
        console.log(something);
        // do something else
    }
})

Возвращается следующее 400:

{ errors: 
    [ { domain: 'global',
        reason: 'required',
        message: 'Missing end time.' } ],
  code: 400,
  message: 'Missing end time.'}

Как мне это исправить? Авторизация явно работает — я знаю, потому что я израсходовал свои несанкционированные запросы за день и потому что я могу перечислить все события. Я также указал endTime. Почему API календаря Google сообщает мне, что это не так?


person royhowie    schedule 23.07.2014    source источник
comment
Как оказалось, я написал с ошибкой resource. В приведенном выше коде я использовал resources, что неверно.   -  person royhowie    schedule 23.07.2014


Ответы (1)


Я думаю, проблема в ключевом слове «ресурсы» в строке 4 вашего второго фрагмента. Судя по документации, это должен быть "ресурс":

 * @param  {object} params.resource - Request body data
person luc    schedule 23.07.2014