diff --git a/src/main/java/kz/konturai/parser/controller/FacebookWebhookController.java b/src/main/java/kz/konturai/parser/controller/FacebookWebhookController.java index 6e427e6..0c00bb9 100644 --- a/src/main/java/kz/konturai/parser/controller/FacebookWebhookController.java +++ b/src/main/java/kz/konturai/parser/controller/FacebookWebhookController.java @@ -12,31 +12,37 @@ public class FacebookWebhookController { private static final Logger logger = LoggerFactory.getLogger(FacebookWebhookController.class); - // ХАРДКОД ТОКЕНА (Чтобы точно заработало) - private final String VERIFY_TOKEN = "konturAI"; + // Убедись, что на сайте Facebook в поле Verify Token ты вводишь ИМЕННО ЭТО: + private final String VERIFY_TOKEN = "meatyhamhock"; @GetMapping public ResponseEntity verifyWebhook( @RequestParam(name = "hub.mode", required = false) String mode, @RequestParam(name = "hub.verify_token", required = false) String token, - @RequestParam(name = "hub.challenge", required = false) String challenge) { + @RequestParam(name = "hub.challenge", required = false) String challenge) { // <--- ИЗМЕНИЛ НА String - logger.info(">>> GET запрос на верификацию: token={}, challenge={}", token, challenge); + logger.info(">>> VERIFY REQUEST: mode={}, token={}, challenge={}", mode, token, challenge); - // Если прислали тот же токен, что мы зашили в коде - if (VERIFY_TOKEN.equals(token)) { - // Фейсбук ждет В ТОЧНОСТИ этот challenge назад + // 1. Проверяем, что параметры вообще пришли + if (mode == null || token == null || challenge == null) { + logger.error(">>> Missing parameters"); + return ResponseEntity.badRequest().body("Missing parameters"); + } + + // 2. Проверяем токен + if ("subscribe".equals(mode) && VERIFY_TOKEN.equals(token)) { + logger.info(">>> SUCCESS: Verified!"); + // ВАЖНО: Возвращаем challenge обратно Фейсбуку! return ResponseEntity.ok(challenge); } else { - logger.error(">>> ОШИБКА: Токены не совпали. Ждали: {}, Получили: {}", VERIFY_TOKEN, token); - return ResponseEntity.status(HttpStatus.FORBIDDEN).body("Error: Token mismatch"); + logger.error(">>> FAIL: Token mismatch. Expected: {}, Got: {}", VERIFY_TOKEN, token); + return ResponseEntity.status(HttpStatus.FORBIDDEN).body("Verification failed"); } } - @PostMapping public ResponseEntity receiveEvent(@RequestBody(required = false) String payload) { - logger.info(">>> POST запрос получен: {}", payload); + logger.info(">>> POST RECEIVED: {}", payload); return ResponseEntity.ok().build(); } } \ No newline at end of file