RestTemplate
์ ์ฌ์ฉํ์ฌ ์์ ์๊ฒ ์นด์นด์คํก ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ API๋ฅผ ๊ตฌํhttp://localhost:8090
http://192.168.16.11:8090
http://localhost:8090/kakao/callback
http://192.168.16.11:8090/kakao/callback
ํญ๋ชฉ ์ด๋ฆ | ID | ์ค์ |
---|---|---|
์นด์นด์คํก ๋ฉ์์ง ์ ์ก | talk_message | ์ด์ฉ ์ค์ผ๋ก ์ค์ |
์ด ํญ๋ชฉ์ด ์์ด์ผ ๋์๊ฒ ๋ฉ์์ง ๋ณด๋ด๊ธฐ API ํธ์ถ ๊ฐ๋ฅ
@GetMapping("/getCodeMsg")
public String getCode_message(){
return "redirect:https://kauth.kakao.com/oauth/authorize"
+ "?client_id=" + CLIENT_ID
+ "&redirect_uri=" + REDIRECT_URI
+ "&response_type=code"
+ "&scope=talk_message"; // โ
๋ฉ์์ง ์ ์ก ๊ถํ ์์ฒญ
}
access_token
์ ๋ฐ๊ธ๋ฐ์ ์ ์ฅํด์ผ ํฉ๋๋ค.@GetMapping("/message/me/{message}")
public void message_me(@PathVariable("message") String message){
String url = "https://kapi.kakao.com/v2/api/talk/memo/default/send";
HttpHeaders header = new HttpHeaders();
header.add("Authorization", "Bearer " + kakaoTokenResponse.getAccess_token());
header.add("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
JSONObject template_object = new JSONObject();
template_object.put("object_type", "text");
template_object.put("text", message);
template_object.put("link", new JSONObject()); // ํ์ ํ๋
template_object.put("button_title", ""); // ๋ฒํผ ์์ด ๊ฐ๋ฅ
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.add("template_object", template_object.toString());
HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<>(params, header);
new RestTemplate().exchange(url, HttpMethod.POST, entity, String.class);
}
๋ธ๋ผ์ฐ์ ์ ์ โ ์ธ๊ฐ ์ฝ๋ ์์ฒญ
http://localhost:8090/kakao/getCodeMsg
์ฌ์ฉ์ ๋์ ํ Redirect URI๋ก ์ธ๊ฐ ์ฝ๋ ์ ๋ฌ
์ธ๊ฐ ์ฝ๋๋ก AccessToken ๋ฐ๊ธ
๋ฉ์์ง ์ ์ก
http://localhost:8090/kakao/message/me/์๋
ํ์ธ์
์นด์นด์คํก ์ฑ์ โ๋์์ ์ฑํ ๋ฐฉโ์์ ๋ฉ์์ง ํ์ธ
ํญ๋ชฉ | ์ค๋ช |
---|---|
talk_message | ํ์ ์ค์ฝํ. ์ฌ์ฉ์ ๋์ ํ์ |
template_object | ๋ฉ์์ง ๋ด์ฉ ๊ตฌ์ฑ. ๋ฐ๋์ JSON ํ์ |
link , button_title | ์๋ต ๋ถ๊ฐ์ง๋ง ๊ฐ์ ๋น์๋ ๋จ |
์ธ์ฆ ํ๋ฆ | ์ธ๊ฐ ์ฝ๋ โ AccessToken โ ๋ฉ์์ง ์ ์ก |
ํ ํฐ ์ ์ฅ | ๋ณด์์ ์ํด ์ธ์ ๋๋ DB์ ์ ์ฅ ๊ถ์ฅ |