GoogleAPI NodeJS: calendar.events.watch получает ошибку push.webhookUrlNotHttps или pushWebhookBadDomain

Я выполнил все настройки, необходимые в https://developers.google.com/google-apps/calendar/v3/push (я думаю), и я пытаюсь зарегистрировать свой URL-адрес обратного вызова для просмотра событий с помощью этого кода:

calendar.events.watch({

    auth:jwtClient,
    resource: {
        id: "yourChannelId",
        type: 'web_hook',
        address: "https://api.mysite.com/notifications"
    },
    calendarId: "mycalendarId"
}, function(error, response) {
    if (error) {
        console.log(error);
        return;
    }
    console.log(response);

});

И я получаю ошибку message: 'No valid domain for WebHook callback: https://https://api.mysite.com', reason: 'pushWebhookBadDomain'. Если я попытаюсь указать адрес как просто «api.mysite.com/notifications» (поскольку кажется, что https дублируется), то я получаю сообщение об ошибке message: 'WebHook callback must be HTTPS: api.mysite.com/notifications', reason: 'push.webhookUrlNotHttps'

Кто-нибудь может мне помочь? Спасибо


person danielapsmaior    schedule 27.01.2016    source источник
comment
Удалось ли вам зарегистрировать свой домен на странице подтверждения домена в консоли разработчика перед созданием канала уведомлений?   -  person adjuremods    schedule 28.01.2016
comment
@adjuremods Да, зарегистрировался в Webmasters с html в корневом каталоге, а затем добавил в разрешенные домены моей службы календаря. Есть ли другое место, чтобы добавить его?   -  person danielapsmaior    schedule 29.01.2016
comment
Что ж, я вернулся в Инструменты для веб-мастеров и увидел ошибку «Сертификат SSL/TLS не включает доменное имя». Так что, возможно, это так, я отпишусь, когда исправлю.   -  person danielapsmaior    schedule 29.01.2016


Ответы (1)


Я заставил его работать. Я надеюсь, что это может помочь кому-то. Вот как:

в Developers Console URL-адрес должен быть без https, но с включенным методом.

в Инструментах для веб-мастеров URL должен быть с https, но только с каноническим доменом.

Моя проблема заключалась в том, что в Developers Console я добавил все возможности (всего 4 домена), но сервис использует только первый, что было неправильно.

В вызове было правильно, с https и методом:

resource: {
    id: "yourChannelId",
    type: 'web_hook',
    address: "https://api.mysite.com/notifications"
}
person danielapsmaior    schedule 01.02.2016
comment
Привет, Даниэль, твой пример помог мне разобраться, я правильно получаю канал и запускаю sync сообщение, но после этого ничего не происходит. Вы представляете, каким он должен быть? Это мой вопрос, опубликованный здесь: stackoverflow.com/questions/35434828/ - person snaggs; 16.02.2016
comment
просто чтобы убедиться, что ваши изменения в календаре происходят до истечения срока действия вашего канала, верно? - person danielapsmaior; 17.02.2016
comment
да, мой канал обновился, во всяком случае, он начал работать, понятия не имею, почему. Похоже на глюк гугла. В любом случае спасибо, но ваш пример мне очень помог - person snaggs; 19.02.2016