From 337399158e801e3cefa01a25fe37c1128d94529b Mon Sep 17 00:00:00 2001 From: arys Date: Thu, 29 Jan 2026 16:37:34 +0500 Subject: [PATCH] fix --- .../controller/FacebookWebhookController.java | 66 +++++-------------- src/main/resources/application.properties | 3 +- 2 files changed, 17 insertions(+), 52 deletions(-) diff --git a/src/main/java/kz/konturai/parser/controller/FacebookWebhookController.java b/src/main/java/kz/konturai/parser/controller/FacebookWebhookController.java index befcabc..6e427e6 100644 --- a/src/main/java/kz/konturai/parser/controller/FacebookWebhookController.java +++ b/src/main/java/kz/konturai/parser/controller/FacebookWebhookController.java @@ -2,12 +2,9 @@ package kz.konturai.parser.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; @RestController @RequestMapping("/api/facebook/webhook") @@ -15,62 +12,31 @@ public class FacebookWebhookController { private static final Logger logger = LoggerFactory.getLogger(FacebookWebhookController.class); - @Value("${facebook.verify.token}") - private String verifyToken; - - private final ObjectMapper objectMapper; - - public FacebookWebhookController() { - this.objectMapper = new ObjectMapper(); - } + // ХАРДКОД ТОКЕНА (Чтобы точно заработало) + private final String VERIFY_TOKEN = "konturAI"; @GetMapping public ResponseEntity verifyWebhook( - @RequestParam("hub.mode") String mode, - @RequestParam("hub.verify_token") String token, - @RequestParam("hub.challenge") String challenge) { + @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) { - if ("subscribe".equals(mode) && verifyToken.equals(token)) { - logger.info(">>> WEBHOOK VERIFIED SUCCESSFULLY!"); + logger.info(">>> GET запрос на верификацию: token={}, challenge={}", token, challenge); + + // Если прислали тот же токен, что мы зашили в коде + if (VERIFY_TOKEN.equals(token)) { + // Фейсбук ждет В ТОЧНОСТИ этот challenge назад return ResponseEntity.ok(challenge); } else { - logger.error(">>> WEBHOOK VERIFICATION FAILED. Token mismatch."); - return ResponseEntity.status(HttpStatus.FORBIDDEN).build(); + logger.error(">>> ОШИБКА: Токены не совпали. Ждали: {}, Получили: {}", VERIFY_TOKEN, token); + return ResponseEntity.status(HttpStatus.FORBIDDEN).body("Error: Token mismatch"); } } + @PostMapping - public ResponseEntity receiveEvent(@RequestBody String payload) { - try { - JsonNode root = objectMapper.readTree(payload); - - if (root.has("entry")) { - for (JsonNode entry : root.get("entry")) { - if (entry.has("messaging")) { - for (JsonNode event : entry.get("messaging")) { - // Если это сообщение от юзера - if (event.has("message") && !event.get("message").has("is_echo")) { - - String senderId = event.get("sender").get("id").asText(); - String text = event.get("message").has("text") ? - event.get("message").get("text").asText() : ""; - - // === ВОТ ЭТОТ ID ТЕБЕ НУЖЕН === - logger.info("============================================"); - logger.info(">>> ПОЙМАН ID ТЕСТЕРА: " + senderId); - logger.info(">>> ТЕКСТ СООБЩЕНИЯ: " + text); - logger.info(">>> СКОПИРУЙ ЭТОТ ID В PostingTaskService!"); - logger.info("============================================"); - } - } - } - } - } - // Всегда возвращаем 200 OK, чтобы Фейсбук не слал повторы - return ResponseEntity.ok().build(); - } catch (Exception e) { - logger.error("Error processing webhook", e); - return ResponseEntity.ok().build(); - } + public ResponseEntity receiveEvent(@RequestBody(required = false) String payload) { + logger.info(">>> POST запрос получен: {}", payload); + return ResponseEntity.ok().build(); } } \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 6fe7b22..8445874 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -128,8 +128,7 @@ telegram.api.timeout=30000 # ========================================== facebook.api.timeout=30000 -# ??? ????? ?????, ??????? ?? ???? ?? ????? FACEBOOK (??? ?? ?????????) -facebook.verify.token=my_test_secret_123 +facebook.verify.token=konturAI # ???? ?????? ??????? ????? ???????? (Page Access Token) # ?????? ??? ? Meta Developers -> Messenger -> Settings -> Access Tokens (Generate Token)