Анализ проблем с вебхуками

Продвинутый
Данный материал предназначен для продвинутых пользователей. Если у вас есть вопросы по применению, обратитесь в Техническую поддержку BPMSoft.

Анализ свойств вебхуков

В разделе «Управление конфигурацией» появился новый тип элементов — «Вебхук». Если открыть запись вебхука через пакет, вы перейдете на страницу с настройками, как и при переходе через «Дизайнер системы».

В контекстном меню записи есть пункт «Открыть метаданные». При его выборе вы увидите текстовое представление данных из поля MetaData объекта VwWebhookV2. На вкладке «Метаданные» данные будут отображаться в необработанном виде, а на вкладке «Метаданные (чтение)» — в более удобной для чтения форме. Это позволяет сопоставлять названия блоков в JSON-строке с их значениями.

Сопоставление названий блоков JSON-строки и их смысловых значений
    A2: Name;
    A5: CreatedInPackageId;
    B1: Methods;
    B2: LocalizableStrings;
    B3: Usings;
    B6: PackageUId;
    B8: CreatedInVersion;
    WS1: CheckClientUrl (если признак Проверять URL клиента не заполнен, блок отсутствует);
    WS2: ClientUrl;
    WS3: WebhookAuthInfo (при указании типа аутентификации Не требуется блок отсутствует полностью);
        WS3.IY1: AuthType (1 — Cookie, 2 — JWT);
        WS3.IZ1: Username;
            WS3.IZ1.IV2: Source;
        WS3.IZ2: Password;
            WS3.IZ2.IV2: Source;
        WS3.IZ3: UserId;
            WS3.IZ3.IV1: Value;
            WS3.IZ3.IV2: Source;
        WS3.IZ4: ValidBefore;
            WS3.IZ4.IV2: Source;
        WS3.JD1: UserId;
            WS3.JD1.IV1: Value;
            WS3.JD1.IV2: Source;
        WS3.JD2: Token;
            WS3.JD2.IV2: Source;
        WS3.JD3: TokenHeader;
            WS3.JD3.IV1: Value;
            WS3.JD3.IV2: Source;
        WS3.JD4: ValidBefore;
            WS3.JD4.IV1: Value;
            WS3.JD4.IV2: Source;
    WS4: WebhookMethods;
        WS4.A2: Name;
        WS4.A3: CreatedInSchemaUId;
        WS4.A4: ModifiedInSchemaUId;
        WS4.IR1: Request;
            WS4.IR1.IW1: Parameters;
        WS4.IR2: Response;
            WS4.IR2.IW1: Parameters;
        WS4.IR4: Endpoint;
        WS4.IR5: HttpMethodType (1 — GET, 2 — POST);
        WS4.IR6: WebhookContentType;
        WS4.IR8: ActionRules;
            WS4.IR8.A2: Name;
            WS4.IR8.AR1: ActionRuleType (1 — запуск БП, 3 — изменить данные, 4 — добавить данные);
            WS4.IR8.AR2: ProcessedObjectId;
            WS4.IR8.AR3: MethodInputParamByBpInputParams;
            WS4.IR8.AR4: MethodOutputParamByBpOutputParams;
            WS4.IR8.AR5: MethodInputParamByObjectParams;
            WS4.IR8.AR6: MethodInputParamByObjectFilterParams;
            WS4.IR8.AR7: MethodOutputParamByObjectOutputParams;
        WS4.IR9: IsPublished.

Основные сведения о вебхуках можно получить, выполнив запрос в базе данных:

Для Microsoft SQL Server
select * from VwWebhookV2;
Для PostgreSQL
select * from "VwWebhookV2";

Информация о структуре вебхуков и результаты SQL запроса к VwWebhookV2 полезна для первичной диагностики проблем с вебхуками. С их помощью можно:

  • Проверить корректность заполнения ключевых полей (ClientUrl, AuthType, HttpMethodType и др.);
  • Убедиться, что все обязательные блоки JSON присутствуют с учетом условий (например, отсутствие блока WS3: WebhookAuthInfo при типе аутентификации «Не требуется»);
  • Сопоставить настройки вебхука с его поведением (например, соответствие HttpMethodType).

Если самостоятельная диагностика не позволила устранить проблему, пожалуйста, соберите следующую информацию и обратитесь в техническую поддержку BPMSoft:

  1. Результат SQL‑запроса к VwWebhookV2 (или его релевантную часть).
  2. Скопированные метаданные вебхука (вкладки «Метаданные» и «Метаданные (чтение)»).
  3. Выявленные несоответствия в метаданных (например: «Поле HttpMethodType = 2 (POST), но эндпоинт поддерживает только GET»).
  4. Краткое и точное описание возникшей проблемы.

Анализ ошибок вебхуков

С версии BPMSoft 1.9 вебхуки отображают более детализированные тексты ошибок. Ниже приведены сценарии, при которых могут появляться такие сообщения.

Таблица 1 — Детализация ошибок вебхуков

Текст ошибки Сценарий
Токен не был передан Передайте JWT-токен при вызове метода вебхука
Срок действия токена истек. Обновите токен Выполните перегенерацию токена. Подробнее: JWT-аутентификация
Передан некорректный JWT-токен. Проверьте структуру Скопировать JWT-токен можно только после первой генерации. Если корректный токен не был сохранен, то выполните его перегенерацию. Подробнее: JWT-аутентификация
Токен выдан не тому пользователю, который указан в схеме интеграции Укажите в настройках аутентификации вебхука нужного пользователя и выполните перегенерацию токена. Подробнее: JWT-аутентификация
Отсутствует cookie. Необходимо войти в систему Передайте в заголовок запроса BPMCSRF при вызове метода вебхука
Cookie повреждён или сессия недействительна. Необходима повторная авторизация Выполните повторную Forms-аутентификацию и передайте корректный BPMCSRF в заголовок запроса при вызове метода вебхука. Подробнее: Forms-аутентификация
Идентификатор пользователя в cookie не совпадает с ожидаемым по интеграции Выполните повторную Forms-аутентификацию под пользователем, который указан в настройках аутентификации вебхука, и передайте корректный BPMCSRF в заголовок запроса при вызове метода. Подробнее: Forms-аутентификация
Передан Cookie при используемом типе аутентификации «Не требуется» В настройках аутентификации вебхука поменяйте тип на «Cookie».  Подробнее: Forms-аутентификация
Неверный URL-адрес клиента Проверьте корректность URL запроса к методу вебхука
В запросе одновременно переданы несколько методов аутентификации. Разрешён только один метод При вызове метода вебхука должен передаваться Cookie BPMSCRF или JWT-токен. Используйте только один вариант в зависимости от того, какие настройки аутентификации установлены у вебхука. Подробнее: Настройка аутентификации
Значение WebhookSecretKey не задано в конфигурационном файле Установите значение параметра согласно инструкции
Значение WebhookSecretKey имеет недостаточную длину Рекомендуется использовать не менее 32 символов, включая буквы верхнего и нижнего регистра, цифры и специальные символы

Не работает анонимная аутентификация

Проблема

Вызовы методов вебхука с анонимной аутентификацией не работают. Вместо этого происходит перенаправление на страницу авторизации.

Решение

  1. Проверьте, что в параметре AllowedLocations конфигурационного файла (для .NET Framework – во «внутреннем» Web.config) присутствует значение webhook/*.
Пример корректного значения параметра AllowedLocations
<add key="AllowedLocations" value="api/HealthCheck/Ping;ServiceModel/MsgUtilService.svc; …; webhook/*" />

При отсутствии значения необходимо его добавить внутри value в конец строки и перезапустить приложение BPMSoft.

  1. Если используется BPMSoft на платформе .NET Framework, то проверьте, что во «внутреннем» Web.config присутствует блок настроек:
<location path="webhook">
      <system.web>
        <authorization>
          <allow users="*" />
        </authorization>
      </system.web>
</location>

При отсутствии блока добавьте его в конфигурационный файл, например, между блоками <location path="ServiceModel/TotpResetPasswordService.svc">…</location> и <location path="Nui/Feedback.aspx">…</location>.

Рекомендуем изучить

Настройка интеграции вебхуков
Общие принципы диагностики проблем интеграций и инфраструктуры

Материал был полезен для вас?
Вебинар: 22 апреля в 11:00
Приглашаем вас на вебинар «BPMSoft – от выбора к реальным процессам», где покажем, как компании на практике сокращают time-to-market и масштабируют бизнес с помощью решений BPMSoft.
Регистрация на мероприятие
Готовы сделать выбор CRM?
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Готовы сделать выбор CRM? (детальная)
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Готовы сделать выбор CRM?
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Готовы сделать выбор CRM? (детальная)
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Оставить заявку
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Демонстрационная версия BPMSoft
Заполните заявку для получения бесплатного доступа к демонстрационному стенду на 14 дней.
Типовое внедрение
Внедрите BPMSoft CRM в свою компанию всего за 8 рабочих дней по фиксированной цене! Заполните заявку для уточнения условий.
Заказать презентацию
Наш менеджер свяжется с Вами в ближайшее время.
Рассчитать стоимость
Задать вопрос
Карта сценариев использования ИИ для управления маркетингом, продажами и сервисом
Заполните форму и мы отправим исследование на E-mail
Присоединяйтесь к партнерской сети BPMSoft
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время
Тип партнерства*
Управление полным жизненным циклом клиента: от генерации лидов и продаж до внедрения, поддержки и продления подписки.
Разработка собственного Приложения – производного программного обеспечения, созданного на платформе BPMSoft (Базовое ПО).
Есть вопросы?
Не нашли для себя подходящую вакансию, или остались вопросы?
*
Есть вопросы?
Не нашли для себя подходящую вакансию, или остались вопросы?
*
Стать образовательным партнёром
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Заявка на консультацию
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Подписка
Спасибо!
Ваша заявка принята.
Наш сотрудник свяжется с вами в течение 1-2 рабочих дней.
Внимание!
Обнаружена ошибка.
Проверьте вашу почту
Для завершения подписки перейдите по ссылке в письме, которое мы только что отправили. Если письма нет во «Входящих», проверьте папку «Спам».
Telegram Подписаться
Уважаемые клиенты! Предупреждаем о случаях недобросовестной конкуренции и мошенничестве в сети Интернет.
Подробнее