Обзор обезьяны Webhook

После создания веб-перехватчика, когда я заполняю форму, он отправляет запрос POST в мой API, но тело остается пустым.

Ничего не могу найти в инете, документация по СМ оставляет желать лучшего.

Мой API

async testWebhook({ request, response }) {
   console.log('request.body', request.body)
   response.status(200).send()
   return
}

Что это может быть?


person Yellow Pink    schedule 09.09.2018    source источник


Ответы (2)


Я нашел ответ, если ваше приложение работает на Express.js

POST Survey Monkey Webhook объявляет заголовок application / vnd.surveymonkey.response.v1 + json

Если вы не справитесь с этим в Express, объект request.body будет пустым.

Вы можете использовать body-parser и определить заголовок:

app.use(bodyParser.json({
    type: 'application/vnd.surveymonkey.response.v1+json'
}));

См. Документацию здесь - типы парсеров тела

Я также должен упомянуть, что когда я создал свой Webhook с Survey Monkey, я включил «тип содержимого», но только после того, как я добавил эту дополнительную конфигурацию в свое приложение, он начал показывать мне данные POST.

Пример создания веб-перехватчика:

{
    "name": "My Survey Completed Webhook",
    "event_type": "response_completed",
    "object_type": "survey",
    "object_ids": ["1234"],
    "subscription_url": "https://APP_URL/survey-responses",
    "content_type": "application/json"
}
person danlong    schedule 25.02.2019

В теле должен быть JSON с телом, аналогичным приведенному в примере. Одна из возможных проблем заключается в том, что веб-перехватчик от SurveyMonkey отправляет тело с заголовком настраиваемого типа содержимого, например application/vnd.surveymonkey.survey.v1, что может не понравиться вашему серверу.

Я не уверен, что это задокументировано, но вы можете указать application/json в качестве типа контента, включив его в тело при создании веб-перехватчика:

POST /v3/webhooks
{
  ...
  "content_type": "application/json"
}

Что может заставить его работать без каких-либо изменений в настройках вашего парсера тела на вашем сервере.

person General Kandalaft    schedule 16.09.2018