This commit is contained in:
arys
2026-01-29 16:56:57 +05:00
parent 337399158e
commit d9423a8bb8
@@ -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<String> 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<Void> receiveEvent(@RequestBody(required = false) String payload) {
logger.info(">>> POST запрос получен: {}", payload);
logger.info(">>> POST RECEIVED: {}", payload);
return ResponseEntity.ok().build();
}
}