aboutsummaryrefslogtreecommitdiff
path: root/juick-api/src/main/java/com/juick/api/controllers
diff options
context:
space:
mode:
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.java42
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 000000000..f03a36335
--- /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);
+ }
+}