인공지능이라고 하기엔 뭐하지만 딱히 넣을 카테고리가 없어서 여기에 쓴다.
카톡을 자동으로 전송해주는 코드를 짜는 방법에 대한 글이다.
먼저 카카오 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 |