예제 소스는 classic asp로 구현했습니다.
나에게 보내기Copy URL
카카오톡 나에게 보내기는 사용자 중에서 카카오계정에 연결한 카카오톡 사용자에 한해 카카오톡 나와의 챗팅방으로 메시지를 보낼 수 있는 기능입니다. 해당 기능을 사용하기 위해서는 성공적인 로그인 후에 얻을 수 있는 사용자 토큰이 필요합니다.
(https://developers.kakao.com/docs/restapi#카카오톡-나에게-보내기)1. 카카오 개발자 등록
https://accounts.kakao.com/login?continue=https://developers.kakao.com/login
2. 내 애플리케이션 추가작업
3. 사용자관리 설정
일반을 클릭하면 rest api 키를 얻을수 있습니다. 밑에 소스에서 client_id 변수에 이 값을 넣어주셔야됩니다.
4. 템플릿 추가
5. restapi key 확인 및 도메인 등록
내어플리케이션 > 설정 > 일반 > REST API 키 확인, 사이트 도메인 등록, path 등록
6. 로그인 처리
https://developers.kakao.com/docs/restapi#사용자-관리-로그인
ex>
https://kauth.kakao.com/oauth/authorize?client_id={client_id}&redirect_uri={등록한 path}&response_type=code
7. 토큰받기 처리 및 나에게 메시지 전송
등록한 path 페이지에서 code라는 request 값을 받는다.
받은 code값을 이용하여 token 값을 요청
[aaa.asp 페이지]
'async 함수
Function postFormData(url, headerArr, data)
Dim xhr, i
Set xhr = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
xhr.open "POST", url, false
for i = 0 to ubound(headerArr)
xhr.setRequestHeader headerArr(i)(0), headerArr(i)(1)
next
xhr.send data
If (xhr.Status = 200) then
postFormData = xhr.ResponseText
response.write postFormData
Else
Err.Raise 1001, "postFormData", "Post to " & url & " failed with " & xhr.Status&" message "&xhr.responseText
End If
End Function
client_id = "38c9*********************8"
url = "https://주소.co.kr/index22.asp"
code = request("code")
'토큰 요청 값 받기
'최초 요청을 보냈을시 access_token, refresh_token
set tokenObj = JSON.parse(
postFormData("https://kauth.kakao.com/oauth/token",
array(array("Content-Type","application/x-www-form-urlencoded")),
"grant_type=authorization_code&client_id="&client_id&"&redirect_uri="&url&"&code="&code))
access_token = tokenObj.access_token
refresh_token = tokenObj.refresh_token
'refresh token 요청 값 받기
'refresh_token은 기본 12시간~24시간이 아닌 더 긴 시간을 유지할수 있는 token임
set refreshTokenObj = JSON.parse(
postFormData("https://kauth.kakao.com/oauth/token",
array(array("Content-Type","application/x-www-form-urlencoded")),
"grant_type=refresh_token&client_id="&client_id&"&redirect_uri="&url&"&refresh_token="&refresh_token))
'refresh token 요청시 access_token만 넘어옴
access_token = refreshTokenObj.access_token
'access_token 값을 이용하여 message 보내기
response.write postFormData("https://kapi.kakao.com/v1/api/talk/memo/send?template_id=828&args="&
Server.URLEncode("{""${message}"":""테스트적용완료"",""${subject}"":""적용완료""}"),
array(array("Authorization", "Bearer "& access_token)),"")
위와 같이 나에게 메시지가 옴
- 나에게 보낸다는 서비스이기때문에 광범위하게 사용하기에 제약사항이 좀 있습니다.
구현하시서 생각해보시길..