Как совершать вызовы POST API с помощью google-api-nodejs-client?

Я пытаюсь сделать вызов API push-уведомлений Календаря Google (https://developers.google.com/google-apps/calendar/v3/push). Я понял, как сделать вызов списка календаря. Итак, я вполне уверен, что моя часть аутентификации Oauth 2.0 работает. Я предполагаю, что мне нужно указать, что вызов push-уведомления является POST. Вот мои коды:

  var params = { calendarId: calendarId,
                 id: 'my-unique-id-00001',
                 type: "web_hook",
                 address: "https://mydomain.com/notifications" };
  client
    .calendar.events.watch(params)
    .withAuthClient(authClient)
    .execute(callback);

Я продолжаю получать это сообщение об ошибке:

{ ошибки: [ { домен: 'глобальный', причина: 'требуется', сообщение: 'entity.resource', debugInfo: 'com.google.api.server.core.Fault: ImmutableErrorDefinition{base=REQUIRED, category=USER_ERROR, причина=com.google.api.server.core.Fault: Builder{base=REQUIRED, ...


person Jason Liu    schedule 15.10.2013    source источник
comment
Вам удалось разобраться в этом? У меня похожая проблема.   -  person sheldonbaker    schedule 21.11.2013
comment
Знаете ли вы, каков тип содержимого вашего запроса? Я видел эту ошибку, когда она была != application/json   -  person jtmoulia    schedule 11.12.2013
comment
Как ни странно, я использую предоставленный Google google-api-ruby-client, и мне все еще нужно установить заголовок Content-Type в application/json, чтобы выполнить запрос на просмотр. Спасибо!   -  person paf0    schedule 06.05.2014


Ответы (1)


Когда я пытался что-то посмотреть с помощью API Google Диска, я столкнулся с той же проблемой. Проблема оказалась в том, что некоторые параметры должны быть в теле ответа.

В вашем случае я считаю, что calendarId должен быть параметром пути, а остальные должны быть в теле запроса. Что-то вроде этого должно работать

var pathParams = { calendarId: calendarId };
var bodyParams = {
    id: 'my-unique-id-00001',
    type: 'web_hook',
    address: 'https://mydomain.com/notfications'
};
client
    .calendar.events.watch(pathParams, bodyParams)
    .withAuthClient(authClient)
    .execute(callback);
person btobolaski    schedule 03.04.2014