fix
This commit is contained in:
@@ -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<String> 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<Void> 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<Void> receiveEvent(@RequestBody(required = false) String payload) {
|
||||
logger.info(">>> POST запрос получен: {}", payload);
|
||||
return ResponseEntity.ok().build();
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user