Webhook приостановлен: ошибка запроса, ранее работало

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

Я думал, что сейчас работают только устаревшие? В любом случае, руководство действительно стоит обновить, чтобы прояснить ситуацию с устаревшими вебхуками.

Я тоже так понял: API v1 и устаревшие вебхуки.
И всё работает какое-то время, пока Patreon не останавливает это с ошибками.

СТОЙ, У МЕНЯ ТОЖЕ! Я снова заставил это работать, когда ответил. Однако теперь оно говорит «приостановлено с ошибками». Когда я тестирую по отдельности, показывает 200 OK. Я не понимаю.

Поэтому я предполагаю, что Patreon отправляет что-то, что Discourse не понимает и игнорирует, после чего Patreon приостанавливает вебхук.

Кажется, что так — есть ли какие-то идеи от @staff?

Это не имеет никакого смысла. Если тестовый ответ возвращает статус 200, то он не должен завершаться неудачей. Можете ли вы увидеть какую-либо ошибку в URL /logs? Без дополнительных деталей трудно отладить проблему.

Хм, думаю, вы упустили некоторый контекст:

Когда я ответил, всё снова заработало. Однако теперь статус «приостановлено» с ошибками. Когда я тестирую по отдельности, он показывает 200 OK. Не понимаю.

Эта часть связана со скриншотом с кодом 200. Выше указано «приостановлено». При тестировании — 200. Похоже, это на самом деле баг Patreon?

@dylanh724 у меня всё работает нормально при тестировании. Мне нужны дополнительные детали, чтобы отладить эту проблему. Пожалуйста, снова включите вебхуки и сообщите, видите ли вы какие-либо связанные ошибки по адресу /logs.

Привет, @dylanh724,

Я добавил поддержку новых вебхуков версии 2. Не могли бы вы протестировать их в реальном времени? Используйте триггеры “members:pledge:create”, “members:pledge:update” и “members:pledge:delete” вместо устаревших.

Спасибо! :slight_smile: Обновлено. Однако странно: при попытке ничего не происходит:

Я убедился, что блокировщики всплывающих окон отключены, но даже в этом случае в консоли должно было что-то отобразиться. Неужели API Patreon работает со сбоями? Я поднимусь выше, чтобы посмотреть, где можно проверить логи, и вернусь.

Окей, нашёл логи через forum.{mySite}.com/logs:

… nada, после нажатия «Возобновить»:

Кажется, Patreon даже не попытался что-либо сделать.

Помимо общей кнопки, я также попробовал тот же отдельный тест из recordit:

image

Опять nada в логах O_O

Дополнительно:

Даже возвращаясь к устаревшим версиям, которые всё ещё отправляют ответ (возможно, ваши новые версии забыли вернуть код успеха?), я получаю 200, но Patreon продолжает сообщать об ошибке при возобновлении, что не имеет смысла.

Даже обратные вызовы устаревших хуков (200) не показывают ничего в логах. Неужели существует какой-то фильтр по умолчанию, блокирующий тесты Patreon в логах?

Нет, вам следует использовать только «members:pledge:create» вместо «members:create», как я упоминал выше.

Нет.

Думаю, вам следует удалить всю конечную точку вебхука на сайте Patreon и добавить её заново.

Удалил хук >> переделал >> заменил секрет хука >> members:pledge:create >> тест не возвращает код ответа (в отличие от устаревших, которые возвращают 200).

Пока нет сообщений о том, что это не работает, но, полагаю, потребуется несколько часов.

Связанное: У меня был тестер, который сделал пожертвование, но я не смог его привязать. Не уверен, проблема ли это в вебхуке, но я обнаружил, что существующие пользователи с 2FA не могут привязать «связанные аккаунты» (Patreon) по какой-то причине (баг?). Также есть не задокументированное упоминание о том, что аккаунты связываются путём сопоставления адресов электронной почты — но адрес электронной почты этого тестера отличается от адреса в Patreon, что вызывает проблемы.

Если вы читаете это и тестируете исправление, имейте это в виду.

Чтобы продолжить, я не получаю ошибок по вебхукам. Похоже, что … исправлено? Может быть? У меня пока нет тестировщиков.

Однако я всё ещё беспокоюсь, потому что нет кода возврата (например, 200): нажатие кнопки «Тест» кажется, что ничего не делает (просто нет кода возврата). Не возвращает ли новая версия никаких HTTP-кодов?

@dylanh724, пожалуйста, попробуйте снова использовать вебхуки v2 после обновления плагина.

Также я переделал весь плагин для поддержки API v2 Patreon в ветке beta. Она ещё не стабильна. Если есть возможность, протестируйте её и дайте обратную связь. Для этого вам нужно использовать учётные данные API v2.

Конечно, я попробую сделать это в ближайшее время. Перед обновлением, вот краткое резюме того, что, возможно, вам уже известно на данный момент:

  • Система работала, но показывала, что не работает.
  • Пользователи успешно синхронизировались с группой Patreon.
  • Вероятно, из-за того, что не возвращался код успеха 200:
    1. Тестирование веб-хуков не давало никаких результатов.
    2. Через день-два Patreon присылал вам письмо о том, что ваши веб-хуки не работают.
    3. ^ Я думаю, это было ложное срабатывание, так как синхронизация проходила нормально, просто код не возвращался. Однако ложное срабатывание могло полностью отключить веб-хуки через пару дней. Я не могу сказать, работает ли это до сих пор (тестеры уже синхронизированы).
  • У пользователей с двухфакторной аутентификацией (существующие пользователи, которые не регистрировались через кнопку Patreon) возникали проблемы с синхронизацией, поскольку они не могли привязать свой аккаунт, если адреса электронной почты не совпадали. По какой-то причине раздел «Связанные аккаунты» исчезает, когда включена двухфакторная аутентификация.
  • Существующие пользователи с двухфакторной аутентификацией и несовпадающими адресами электронной почты никогда не получали синхронизацию с Patreon. Это часто случается, когда на форуме и в Patreon используются разные адреса электронной почты (особенно при использовании псевдонимов через «+» или пересылки).

Я понимаю и надеюсь, что этого больше не повторится. Я также проверю возможные решения для двухфакторной аутентификации.

Хм, ничего не вышло:

По-прежнему нет кода 200, если только новые хуки не изменили способ их отображения по сравнению с устаревшими хуками? Всё ещё похоже на проблему с кодом возврата.

Спасибо за тест. Я внес ещё несколько исправлений, и теперь всё работает нормально.