본문 바로가기

인공지능

카카오톡 전송 api 개발

인공지능이라고 하기엔 뭐하지만 딱히 넣을 카테고리가 없어서 여기에 쓴다.

카톡을 자동으로 전송해주는 코드를 짜는 방법에 대한 글이다.

 

먼저 카카오 developers 에 가입을 해서 내 어플리케이션을 만든다.

들어오면 이렇게 되어있고 카카오 로그인을 활성화 시켜주면 된다.

그리고 그 밑에 redirect url을 대충 https://example.com/oauth 이런걸로 설정해준다.

동의항목은 이렇게 설정하면 된다.

 

위에 보면 앱 키라는 부분이 있는데 거기 들어가면 rest api를 확인할 수 있다.

https://kauth.kakao.com/oauth/authorize?client_id={REST API 키}&redirect_uri=	
https://example.com/oauth&response_type=code&scope=talk_message,friends

그걸 이용해서 위 링크를 접속하면 링크 url에 code= 이렇게 되어있는 부분이 있다. 

여기 있는 코드 값을 복사하고

url = "https://kauth.kakao.com/oauth/token"
data = {
    "grant_type" : "authorization_code",
    "client_id" : "{REST API}",
    "redirect_url" : "https://example.com/oauth",
    "code" : "{코드}"
}
response = requests.post(url, data=data)
tokens = response.json()
print(tokens)

 

이 코드를 돌리면 토큰이 나온다.

출력된 값들 중에 refresh token을 찾아서

url = "https://kauth.kakao.com/oauth/token"
data = {
    "grant_type": "refresh_token",
    "client_id": "{REST API}",
    "refresh_token": "{refresh_token}"
}
response = requests.post(url, data=data)
tokens = response.json()
# kakao_code.json 파일 저장
with open("kakao_code.json", "w") as fp:
    json.dump(tokens, fp)

이렇게 코드를 돌려서 json 파일에 토큰을 저장해준다.

url = "https://kapi.kakao.com/v1/api/talk/friends" #친구 목록 가져오기
header = {"Authorization": 'Bearer ' + tokens["access_token"]}
result = json.loads(requests.get(url, headers=header).text)
print(json.dumps(result, indent=2))
friends_list = result.get("elements")
print(friends_list)

friend_id = friends_list[0].get("uuid")
print(friend_id)


url= "https://kapi.kakao.com/v1/api/talk/friends/message/default/send"
header = {"Authorization": 'Bearer ' + tokens["access_token"]}
data={
    'receiver_uuids': '["{}"]'.format(friend_id),
    "template_object": json.dumps({
        "object_type":"text",
        "text":"끼엑",
        "link":{
            "web_url" : "https://www.google.co.kr/search?q=deep+learning&source=lnms&tbm=nws",
            "mobile_web_url" : "https://www.google.co.kr/search?q=deep+learning&source=lnms&tbm=nws"
        },
        "button_title": "보기"
    })
}
response = requests.post(url, headers=header, data=data)
response.status_code

이제 이 코드를 돌리면 친구 목록도 가져오고 카톡 전송도 할 수 있다.

근데 이걸 하기 전에 카톡을 전송할 친구의 계정도 토큰을 발행 받고 카카오 developers에 가입해서 내 애플리케이션에 등록이 되어야 한다.

친구도 아까 코드를 받았던 url을 들어가서 토큰들을 발행받아야 하고, 카카오 devlopers에서는 팀 관리에 들어가 팀원 초대를 하면 된다.

 

'인공지능' 카테고리의 다른 글

모두의 딥러닝 - 2장(처음 해 보는 딥러닝)  (1) 2024.07.17
음성인식  (0) 2024.06.26