diff options
author | Vitaly Takmazov | 2017-03-27 16:31:22 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2017-03-28 14:52:51 +0300 |
commit | d25ab2c9f881aad6acce16b9150ed884472f3dc8 (patch) | |
tree | e5c9e784a2870f74e6ad2566be6e1ba6be2d0f9b /juick-api/src/main/java/com/juick/api/controllers | |
parent | 77aa3f0080575c583fdbd27ce6d216016d764574 (diff) |
juick-api: Messenger bot webhook
Diffstat (limited to 'juick-api/src/main/java/com/juick/api/controllers')
-rw-r--r-- | juick-api/src/main/java/com/juick/api/controllers/MessengerWebhook.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/juick-api/src/main/java/com/juick/api/controllers/MessengerWebhook.java b/juick-api/src/main/java/com/juick/api/controllers/MessengerWebhook.java new file mode 100644 index 00000000..f03a3633 --- /dev/null +++ b/juick-api/src/main/java/com/juick/api/controllers/MessengerWebhook.java @@ -0,0 +1,42 @@ +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<Integer> 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); + } +} |