카카오톡 빌더인가 뭐시기로 바꾸기 전에는 다이얼로그플로우+웹서버를 바로 카카오톡과 연동 가능하였던 걸로 기억한다(참고: https://ndb796.tistory.com/134)
하지만 카카오톡 서비스가 업데이트 되면서 다이렉트로 카카오톡과 다이얼로그 플로우를 연결하지 못하게 되었다 일단 이 포스팅은 웹서버와 카카오톡을 연결하는 방식에 관한 것이다
여기서 주의할 점은 다이얼로그 플로우와 연결하겠다가 카카오톡 api url에 https://웹서버주소/orchid/api/dialogFlowWebHook 를 바로 입력하면 안된다는 것이다 (이러면 웹훅이랑 연결되나봄) https://웹서버주소/그외에필요한리소스명 이렇게 입력해주고 controller에서도 이 주소에 맞게 매핑을 해주어야 한다
KakaoRest.ts
@RestController
@RequestMapping("/")
public class KakaoRest {
@RequestMapping(method = RequestMethod.POST, headers = {"Accept=application/json"})
public String callAPI(@RequestBody Map<String, Object> params){
try{
ObjectMapper mapper = new ObjectMapper();
String jsonInString = mapper.writeValueAsString(params);
int x = 0;
System.out.println(jsonInString);
return "정상적으로 작동되었습니다";
} catch (Exception e) {
System.out.println("에러 발생 " + e);
return "에러발생";
}
}
}
다음과 같이 작성하여 연결하였다