package com.juick.api.controllers; import com.juick.api.MessengerBot; import com.juick.server.util.HttpForbiddenException; import org.apache.commons.io.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.inject.Inject; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.nio.charset.StandardCharsets; /** * Created by vitalyster on 27.03.2017. */ @RestController public class MessengerWebhook { private static Logger logger = LoggerFactory.getLogger(MessengerWebhook.class); @Inject MessengerBot fbBot; @RequestMapping(value = "/fbwbhk", method = RequestMethod.GET) public ResponseEntity verifyHook(@RequestParam(name = "hub.mode") String hubMode, @RequestParam(name = "hub.challenge") Integer hubChallenge, @RequestParam(name = "hub.verify_token") String verifyToken) { if (hubMode.equals("subscribe") && verifyToken.equals(fbBot.getVerifyToken())) { return new ResponseEntity<>(hubChallenge, HttpStatus.OK); } throw new HttpForbiddenException(); } @RequestMapping(value = "/fbwbhk", method = RequestMethod.POST) @ResponseStatus(value = HttpStatus.OK) public void processUpdate(HttpServletRequest req) throws IOException { String data = IOUtils.toString(req.getInputStream(), StandardCharsets.UTF_8); logger.info("got data: {}", data); } }