톱 329 카카오 톡 Api 업데이트 15 일 전

주제에 대한 기사를 찾고 있습니까 “카카오 톡 api“? 웹사이트에서 이 주제에 대한 전체 정보를 제공합니다 https://c1.castu.org 탐색에서: c1.castu.org/blog. 바로 아래에서 이 주제에 대한 자세한 답변을 찾을 수 있습니다. 찾고 있는 주제를 더 잘 이해하려면 끝까지 읽으십시오. 더 많은 관련 검색어: 카카오 톡 api 카카오톡 오픈 api, 카카오톡 api 사용법, 카카오톡 api 메시지 전송, 카카오톡 api 챗봇, 카카오톡 api 예제, 카카오톡 api 메시지 전송 python, 카카오톡 api 파이썬, 카카오톡 api 단톡방

☆카카오톡 메시지 API를 이용하여 친구에게 메시지 보내기

# 카카오톡 메시지 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

curl -v -X POST “https://kapi.kakao.com/v1/api/talk/friends/message/default/send” \ -H “Authorization: Bearer {ACCESS_TOKEN}” \ -d ‘receiver_uuids=[“abcdefg0001″,”abcdefg0002″,”abcdefg0003”]’ \ -d ‘template_object={ “object_type”: “text”, “text”: “텍스트 영역입니다. 최대 200자 표시 가능합니다.”, “link”: { “web_url”: “https://developers.kakao.com”, “mobile_web_url”: “https://developers.kakao.com” }, “button_title”: “바로 확인” }’

# 카카오톡 메시지 API 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)

27 thg 7, 2021 — 이번 글은 카카오 API를 이용해서 친구에게 메시지 보내는 방법을 정리해 보겠습니다. 메시지를 보내는 방법은 크게 두 가지로, 카카오링크 API를 사용 …

  • Source: foss4g.tistory.com
  • Views: 87040
  • Publish date: 17 hours ago
  • Downloads: 9074
  • Likes: 5747
  • Dislikes: 9
  • Title Website: ☆카카오톡 메시지 API를 이용하여 친구에게 메시지 보내기
  • Description Website: 27 thg 7, 2021 — 이번 글은 카카오 API를 이용해서 친구에게 메시지 보내는 방법을 정리해 보겠습니다. 메시지를 보내는 방법은 크게 두 가지로, 카카오링크 API를 사용 …

세부 정보를 보려면 여기를 클릭하십시오.

  • Source: Youtube
  • Views: 39258
  • Date: 2 hours ago
  • Download: 103123
  • Likes: 350
  • Dislikes: 10

★카카오톡 메시지 API를 이용하여 친구에게 메시지 보내기

안녕하세요? 이번 글은 카카오 API를 이용해서 친구에게 메시지 보내는 방법을 정리해 보겠습니다. 메시지를 보내는 방법은 크게 두 가지로, 카카오링크 API를 사용하는 방법과 카카오톡 메시지 API를 사용하는 방법이 있습니다. 여기서는 카카오톡 메시지 API를 이용한 메시지 전송 방법을 실습해 봅니다.

카카오링크 API와 카카오톡 메시지 API의 차이점은 아래 표와 같습니다.

그럼 메시지 보내는 과정을 실습해볼까요?! 일단, 필요한 라이브러리를 호출합니다.

# 라이브러리 호출 import requests import json

카카오 API 사용은 ‘엑세스 토큰’을 필요로 합니다. 엑세스 토큰은 {REST API 키}와 {코드} 값을 통해 확인할 수 있습니다. 이와 관련해서는 아래 글을 참고해보시면 됩니다.

{코드} 값은 아래 주소를 통해 확인 가능하며, 나에게 메시지 보내기와 차이는 ‘scope=talk_message,friends’에 있습니다.

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

아래 {REST API}와 {코드} 부분에 실제값을 반영해 카카오톡 메시지 API용 ‘엑세스 토큰’과 ‘리프레시 토큰’을 확인합니다.

# 카카오톡 메시지 API url = “https://kauth.kakao.com/oauth/token” data = { “grant_type” : “authorization_code”, “client_id” : “{REST API}”, “redirect_url” : “https://localhost:3000”, “code” : “{코드}” } response = requests.post(url, data=data) tokens = response.json() print(tokens)

‘리프레시 토큰’을 기준으로 ‘엑세스 토큰’을 갱신한 후, kakao_code.json 파일에 저장합니다.

# 카카오톡 메시지 API 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)

kakao_code.json을 통해 카카오 API ‘엑세스 토큰’을 로드합니다.

# 카카오 API 엑세스 토큰 with open(“kakao_code.json”, “r”) as fp: tokens = json.load(fp) print(tokens[“access_token”])

‘내 애플리케이션 > 앱 설정 > 팀 관리’에서 메시지를 보낼 친구를 팀원으로 초대합니다.

‘내 애플리케이션 > 제품 설정 > 카카오 로그인 > 동의항목’에서 ‘카카오 서비스 내 친구목록(즐겨찾기 친구포함)’을 ‘이용 중 동의’ 상태로 변경합니다. *팀원은 동의항목과 함께 REST API 테스트를 실행해 주시면 됩니다.

이제 ‘친구 목록’ 가져오기를 실행해봅니다.

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

아래와 같이 친구 목록 중 0번째 리스트의 친구 ‘uuid’를 읽어들여 봅니다.

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

아래 링크는 ‘카카오톡 메시지: REST API’ 페이지입니다.

자, 이제 0번째 친구에게 메시지를 전송해 봅니다!

# 카카오톡 메시지 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

‘Kakao Developers’ 페이지는 주로 ‘curl’ 예제를 제공하고 있는데요, 아래 curl-to-py 웹페이지에서 curl 소스코드를 파이썬 소스코드로 자동 변환해 줍니다.

아래 소스는 curl-to-py웹페이지를 사용하여 curl을 파이썬으로 변환한 결과입니다.

여기까지 카카오 API를 이용하여 친구에게 메시지 보내는 방법을 정리해 봤습니다.

curl -v -X POST “https://kapi.kakao.com/v1/api/talk/friends/message/default/send” \ -H “Authorization: Bearer {ACCESS_TOKEN}” \ -d ‘receiver_uuids=[“abcdefg0001″,”abcdefg0002″,”abcdefg0003”]’ \ -d ‘template_object={ “object_type”: “text”, “text”: “텍스트 영역입니다. 최대 200자 표시 가능합니다.”, “link”: { “web_url”: “https://developers.kakao.com”, “mobile_web_url”: “https://developers.kakao.com” }, “button_title”: “바로 확인” }’

REST API로 카카오톡 메세지 보내기 #01 – 설정하기

왼쪽 메뉴에서 “카카오 로그인” 항목으로 이동합니다. 이 화면에서 활성화 상태를 On으로 변경, 그리고 Redirect URI를 등록해야 합니다. Redirect URI는 샘플 설정인 “https://example.com/oauth” 값을 그대로 입력합니다.

그리고 “애플리케이션 추가하기”를 눌러 “앱 이름”과 “사업자명”을 입력하시면, 앱의 요약 정보에서 REST API 키를 확인할 수 있습니다. 이 키값은 REST API를 사용할 앱에서 추후 사용하게 됩니 키값이 이곳에 있다는 것만 알고 넘어가시면 됩니다.

그리고 하단에 “Body” -> “template_object” 옆 input창에 보내고 싶은 메세지를 규격에 맞는 json 포멧으로 입력하여 메세지를 보내봅시다. template_object의 포멧은 해당 화면 하단 “명세”에 상세히 설명되어 있습니다.

7 thg 12, 2021 — 서버에 문제가 발생하거나 중요 정보들을 정기적으로 보내야 할 때 REST API를 이용해 카카오톡으로 메세지를 전송받을 수 있습니다. 오늘은 카카오 …

  • Source: ongamedev.tistory.com
  • Views: 52742
  • Publish date: 8 hours ago
  • Downloads: 31442
  • Likes: 884
  • Dislikes: 3
  • Title Website: REST API로 카카오톡 메세지 보내기 #01 – 설정하기
  • Description Website: 7 thg 12, 2021 — 서버에 문제가 발생하거나 중요 정보들을 정기적으로 보내야 할 때 REST API를 이용해 카카오톡으로 메세지를 전송받을 수 있습니다. 오늘은 카카오 …

세부 정보를 보려면 여기를 클릭하십시오.

카카오톡 API access token 받기

  • Source: Youtube
  • Views: 50777
  • Date: 50 minute ago
  • Download: 50054
  • Likes: 5843
  • Dislikes: 4

REST API로 카카오톡 메세지 보내기 #01 – 설정하기

회사에서 중요 메세지 전송이 필요할 때 카카오톡을 자주 활용합니다. 서버에 문제가 발생하거나 중요 정보들을 정기적으로 보내야 할 때 REST API를 이용해 카카오톡으로 메세지를 전송받을 수 있습니다.

오늘은 카카오 개발자 사이트에서 필요한 설정을 어떻게 하는지 알아보고, 다음은 python으로 카톡 메세지 보내는 방법을 알아보겠습니다.

우선 카카오 개발자 사이트에서 어플리케이션 등록 및 설정해야 합니다.

https://developers.kakao.com/ 에서 로그인 후 “내 애플리케이션”으로 이동하세요.

그리고 “애플리케이션 추가하기”를 눌러 “앱 이름”과 “사업자명”을 입력하시면, 앱의 요약 정보에서 REST API 키를 확인할 수 있습니다. 이 키값은 REST API를 사용할 앱에서 추후 사용하게 됩니 키값이 이곳에 있다는 것만 알고 넘어가시면 됩니다.

왼쪽 메뉴에서 “카카오 로그인” 항목으로 이동합니다. 이 화면에서 활성화 상태를 On으로 변경, 그리고 Redirect URI를 등록해야 합니다. Redirect URI는 샘플 설정인 “https://example.com/oauth” 값을 그대로 입력합니다.

메세지를 보내기 위해서는 동의항목에 “카카오톡 메시지 전송” 항목을 활성화 해야 합니다.

아래 화면과 같이 설정해 줍니다.

기본 설정은 모두 완료했습니다. 이제 테스트로 메세지를 보내봅시다. 화면 상단의 “문서”를 선택, “메세지” 탭의 “REST API”항목으로 이동해 보세요.

그럼 화면에 “REST API 테스트 도구” 버튼이 있습니다. 이 버튼을 누르면 “나에게 기본 템플릿으로 메세지 보내기” 페이지로 이동합니다.

해당 화면에서 “액세스 토큰”이 없는 상태일 것으므로 “토큰 발급” 버튼을 눌르고, 사용자 정보 조회 범위 중 talk_message를 꼭 선택 후 확인을 눌러 저장하시기 바랍니다.

그리고 하단에 “Body” -> “template_object” 옆 input창에 보내고 싶은 메세지를 규격에 맞는 json 포멧으로 입력하여 메세지를 보내봅시다. template_object의 포멧은 해당 화면 하단 “명세”에 상세히 설명되어 있습니다.

“명세” 항목 중 template_object에는 “Feed”가 기본으로 설정되어 있습니다. 우리는 Text를 보내는 것이 목적이므로 “Text” 를 눌러보면 위와 같은 명세를 확인할 수 있습니다.

{“object_type”:”text”,”text”:”헬로우 카카오톡!!”,”link”:{}}

필수 항목들만 입력한 위 값을 template_object 의 input box에 입력 후 전송을 눌러보세요.

로그인 했던 카카오톡 계정으로 텍스트가 전송됩니다.

글 하나로 다 쓰려다 퇴근 시간이 지나서 이만 줄입니다. 다음 글에서는 python으로 카톡 메세지를 보내보겠습니다. 이만!!

카카오 API키 발급 및 적용방법 – 아임웹

카카오 API키 발급 및 적용방법 · 1단계: 카카오 개발자 페이지 접속하기 · 2단계: 내 애플리케이션 만들기 · 3단계: 플랫폼 설정하기 · 4단계: 발급받은 Javascript 키 복사 …

  • Source: imweb.me
  • Views: 87997
  • Publish date: 5 hours ago
  • Downloads: 28885
  • Likes: 1540
  • Dislikes: 7
  • Title Website: 카카오 API키 발급 및 적용방법 – 아임웹
  • Description Website: 카카오 API키 발급 및 적용방법 · 1단계: 카카오 개발자 페이지 접속하기 · 2단계: 내 애플리케이션 만들기 · 3단계: 플랫폼 설정하기 · 4단계: 발급받은 Javascript 키 복사 …

세부 정보를 보려면 여기를 클릭하십시오.

카카오계정으로 로그인하기 (카카오톡 로그인 API 사용하기)

  • Source: Youtube
  • Views: 6828
  • Date: 34 minute ago
  • Download: 97478
  • Likes: 5054
  • Dislikes: 4

카카오 OpenAPI 활용 – 나에게 카톡 메시지 보내기 – ai-creator

import requests # 커스텀 템플릿 주소 : https://kapi.kakao.com/v2/api/talk/memo/send talk_url = “https://kapi.kakao.com/v2/api/talk/memo/send” # 사용자 토큰 token = ‘<본인의 API키 넣기>‘ header = { “Authorization”: “Bearer {본인의 사용자 토큰 넣기}”.format( token=token ) } # 메시지 template id와 정의했던 ${name}을 JSON 형식으로 값으로 입력 payload = { ‘template_id’ : {본인의 template id 넣기}, ‘template_args’ : ‘{“name”: “테스트 제목”}’ } # 카카오톡 메시지 전송 res = requests.post(talk_url, data=payload, headers=header) if res.json().get(‘result_code’) == 0: print(‘메시지를 성공적으로 보냈습니다.’) else: print(‘메시지를 성공적으로 보내지 못했습니다. 오류메시지 : ‘ + str(res.json()))

import json import requests url = “https://kapi.kakao.com/v2/api/talk/memo/default/send” # 사용자 토큰 headers = { “Authorization”: “Bearer ” + } data = { “template_object” : json.dumps({ “object_type” : “text”, “text” : “Hello, world!”, “link” : { “web_url” : “www.naver.com” } }) } response = requests.post(url, headers=headers, data=data) print(response.status_code) if response.json().get(‘result_code’) == 0: print(‘메시지를 성공적으로 보냈습니다.’) else: print(‘메시지를 성공적으로 보내지 못했습니다. 오류메시지 : ‘ + str(response.json()))

22 thg 2, 2020 — 1. 학습목표. 카카오에서 제공하는 OpenAPI를 이용해서 “나에게 카카오톡 메시지”를 보내 보겠습니다.

  • Source: ai-creator.tistory.com
  • Views: 104554
  • Publish date: 18 hours ago
  • Downloads: 39640
  • Likes: 122
  • Dislikes: 1
  • Title Website: 카카오 OpenAPI 활용 – 나에게 카톡 메시지 보내기 – ai-creator
  • Description Website: 22 thg 2, 2020 — 1. 학습목표. 카카오에서 제공하는 OpenAPI를 이용해서 “나에게 카카오톡 메시지”를 보내 보겠습니다.

세부 정보를 보려면 여기를 클릭하십시오.

API 테스트 주도 개발의 시작 / if(kakao)2022

  • Source: Youtube
  • Views: 46098
  • Date: 24 minute ago
  • Download: 61276
  • Likes: 7135
  • Dislikes: 5

카카오 OpenAPI 활용

[목차]

1. 학습목표

2. 들어가기

3. 사전 준비

4. 사전 지식 쌓기

5. 구현

ㅁ Trouble Shooting

ㅁ 요약정리

ㅁ 보충 자료

1. 학습목표

카카오에서 제공하는 OpenAPI를 이용해서 “나에게 카카오톡 메시지”를 보내 보겠습니다. 카카오톡 메시지를 보내기 위해 사전 지식을 학습하고, 구현하는 순서로 설명되어 있습니다.

이번 장을 배우시면 아래와 같이 카카오 메시지를 받을 수 있습니다.

텍스트 메시지로 보낸 경우 리스트 메시지로 보낸 경우

※ 카카오톡 메시지는 다양한 종류를 제공합니다. 이 책에서는 “나에게 메시지” 보내기와 “텍스트형/리스트형” 2가지 유형의 메시지만 다룹니다.

2. 들어가기

여러분은 하루에 몇 시간 스마트폰을 사용하시나요? 모바일 잠금 화면 서비스 NBT의 설문조사에 따르면 하루 평균 스마트폰 이용시간은 5시간 정도라고 합니다(출처: Link). 한손에 쏙 잡히는 작은 세상에 할 것들이 무궁무진하죠. 스마트폰은 친구들과는 대화를 나누고, 재미난 동영상을 보고, 웹툰을 보며 시간을 보내고 때로는 공부도 하는 유용한 도구입니다.

그럼 5시간 중 어떤 앱을 가장 많이 사용할까요? 2018년도에 한국인이 가장 많이 사용하는 앱을 조사했더니 1위가 카카오톡이었습니다.

출처 : https://platum.kr/archives/133653

친구/가족들과의 소통하기, 선물하기, 결제하기 요즘은 쇼핑까지 할 수 있는 플랫폼으로 거듭나고 있습니다. ‘생활밀착형 앱’이라고 해도 과언이 아닙니다. 글을 읽고 계신 여러분들도 고개를 끄덕이고 계실 거예요.

이렇게 많은 시간을 보내면서 재미와 정보를 넘나드는 메시지들을 주고받는 카카오 앱을 통해서 내가 원하는 메시지들이 전달되면 어떨까요? 한번 상상해보시죠.

– 아침에 날씨, 약속 장소를 고려해서 입고 갈 옷을 카카오 메시지로 받는다면?

– 출근길에 요약된 뉴스를 카카오 메시지로 받는다면?

– 저녁 8시가 되면, 오늘 먹은 음식과 운동 내역을 고려해서 홈트 영상을 카카오 메시지로 받는다면?

상상만으로도 편리함에 미소 지어집니다.

이번 장에서는 카카오로 나만의 메시지 보내는 방법을 배워보도록 하겠습니다.

이 기능만으로도 근사한 프로젝트가 될 수 있고요,

다른 기능과 융합하여 색다른 프로젝트를 만들 수도 있습니다.

3. 사전 준비

카카오 API 사용하기 (준비 사항 : 인증키 발급)) API 키, 사용자 토큰 얻기 (참고 : 이미 발급은 받았다면, API 키 및 사용자 토큰 유효 여부 확인 필요

4. 사전 지식 쌓기

구현에 꼭 필요한 사전 지식을 쌓음으로써 더 쉽고 빠르게 프로그램을 작성할 수 있습니다.

결과부터 보고 싶으신 분들은 [5. 구현]을 먼저 보시고, 다시 돌아와 학습하셔도 되겠습니다.

지식을 쌓을 내용은 다음과 같습니다.

1) 메시지 서비스 및 활용할 서비스 확인

2) 메시지 종류

3) 텍스트와 리스트 메시지 템플릿 알아보기

4) ‘나에게 보내기’ REST API 살펴보기

4-1. 메시지 서비스 및 활용할 서비스 확인

(순서) 카카오 개발자 사이트(Link) > 메시지 > [문서 보기] > [카카오톡 메시지]

카카오 개발자 사이트(Link)에서 제공하는 여러 기능 중에 ” 메시지 “를 사용합니다.

[문서 보기] 버튼을 누르면 문서가 나오는데, 시간적 여유가 있으신 분들은 찬찬히 읽어보시길 바랍니다.

사용할 기능은 카카오톡 메시지 이므로, [카카오톡 메시지] 버튼을 클릭합니다.

해당 기능은 어떤 것이고, 사전 준비는 무엇을 해야 하고 등등이 나옵니다.

“사용권한” 관련 내용을 살펴보시죠.

카카오톡 서비스는

– 나에게 메시지 보내기

– 친구에게 메시지 보내기

– 나에게 스크랩 메시지 보내기

등의 다양한 기능을 API 형태로 지원한다고 합니다.

친구들에게 메시지를 보내고자 할 경우 “친구 목록”을 가져와 “메시지 전송”을 하게 되는데, 제약사항이 있습니다. 이 책에서는 권한 문제 및 구현 편의성을 고려하여 “나에게 메시지 보내기” 기능만 다루도록 하겠습니다.

(참고) 친구들에게 메시지 제약사항 Option 1. “사업자 정보 등록”을 하고 검수 단계를 거친 사용자 Option 2. 카카오 개발자 사이트에서 [내 애플리케이션] > [설정] > [팀 관리]에 추가한 카카오 계정의 친구들

4-2. 메시지 종류

(순서) 카카오 개발자 사이트 > [문서] > 메시지 > [REST API] > [메시지 템플릿] > [종류]

메시지 종류는 피드/리스트/위치/커머스/텍스트/스크랩 등 다양하게 사용이 되며, 이 책에서는 “리스트”와 “텍스트” 유형 메시지를 배우도록 하겠습니다.

4-3. 텍스트와 리스트 메시지 템플릿 알아보기

각 메시지 종류별 제공되는 템플릿이 있습니다. 템플릿이란, 일정한 틀/형식을 의미합니다.

텍스트 메시지는 텍스트 템플릿에 맞춰서 내용을 구성해줘야 하고,

리스트 메시지는 리스트 템플릿에 맞춰서 내용을 구성해 주어야 합니다.

1) 텍스트 메시지 템플릿 (기본 Default)

텍스트 메시지 템플릿

텍스트 템플릿은 문자 위주로 간단한 메시지를 보낼 때 사용합니다.

텍스트 영역과 버튼으로 구성되어 있으며, 다른 템플릿 지정이 없다면 텍스트 템플릿으로 보내집니다.

1. 텍스트 영역: 최대 200자 표시

2. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

2) 리스트 메시지 템플릿

리스트 메시지는 세로로 된 목록 형태 로 보여주는 메시지입니다. 최소 2개, 최대 5개의 아이템을 목록에 담을 수 있습니다. 기본 메시지로 리스트 메시지를 구성할 때는 최대 3개의 아이템만 사용할 수 있습니다.

뉴스나 게시물 목록을 메시지로 전달할 때 효과적인 형태입니다.

리스트 템플릿은 헤더 타이틀과 콘텐츠 목록, 버튼 등으로 구성됩니다. 헤더와 콘텐츠 각각의 링크를 가질 수 있습니다. 피드 템플릿과 마찬가지로 하나의 기본 버튼을 가지며 임의의 버튼을 설정할 수 있습니다.

1. 헤더 영역

2. 아이템 리스트 영역: 최대 3개 표시

3. 제목/설명 영역: 최대 3줄 표시 (제목 2줄, 설명 1줄 표시)

4. 이미지 영역: 400px * 400px (권장 사항)

5. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

※ 메시지에 이미지를 넣는 방법

메시지 API로 이미지를 포함한 메시지를 보내려면 요청 시 각 이미지 파일의 경로(URL)를 전달 해야 합니다. 클라이언트의 이미지 파일이나 기기에서의 이미지 저장 경로를 메시지 발송 요청에 사용할 수는 없습니다.

4-4. ‘나에게 보내기’ REST API 살펴보기

카카오 개발자 사이트(https://developers.kakao.com/docs/latest/ko/message/rest-api#send-me)에서 카카오톡 메시지 “나에게 보내기” REST API를 살펴봅시다.

제공하는 문서를 꼼꼼히 읽어보고 가이드에 따라 코드를 작성합니다.

Request – Response – Sample 순서로 설명되어 있습니다.

Request시에 필요한 URL, Parameter 등을 확인해봅니다.

먼저, URL이라고 되어 있는 부분을 보시죠. URL 부분은 POST, HOST, Authorization에 대해 설명하고 있습니다.

1) Request 요청 방식이 POST와 GET방식이 있는데, POST 방식을 사용한다는 의미입니다.

POST와 HOST의 값을 조합하여 요청할 url을 구성할 수 있습니다.

2 ) 인증(Authorization) 방식은 Bearer를 사용합니다. 그리고, 사용자의 access token({USER_ACCESS_TOKEN})을 적어주면 되는데요, 이때 주의점이 있습니다. Bearer와 access token 사이에 “빈칸(space)”이 있습니다. 만약 여러분의 access token이 access_token_of_example이라고 한다면, Bearer access_token_of_example 이 됩니다.

Parameter에 template_object의 Description 에는 각 메시지 유형별 링크가 있으니 상세 설명을 확인해보세요.

예) 유형 : 텍스트

위의 그림은 “텍스트” 유형인 경우, template_object 값을 어떻게 구성해야 하는지 상세하게 설명되어 있습니다. ‘필수(Required)’는 빠짐없이 구성하여 요청하도록 합니다.

Response는 응답을 의미합니다.

요청에 대한 상태를 나타내는 HTTP의 상태 코드(Status code) 와 에러에 대한 정보를 담은 에러 코드(Error code) 로 나뉩니다. 요청이 성공하면 상태 코드 200과 함께 요청에 대한 응답 바디(response body)가 반환되고, 요청이 실패하면 code와 msg로 이루어진 에러 코드가 반환됩니다. 에러가 관리되는 방법은 플랫폼마다 다르며, 해당 내용은 카카오 OpenAPI에 대한 설명 및 예시입니다.

(참고) HTTP 상태 코드 (Link)

에러가 발생하면 그 원인을 파악해야 합니다. 정말 중요한 일입니다.

프로그래머는 의사와 비슷한 면이 있습니다. 건강상태가 안 좋은 환자(프로그램)에게 상황설명을 듣고(에러 값) 적절한 치료법(코드 수정)으로 진료하는 의사 말이죠. 에러가 발생하면, 에러 값을 살피지 않은 채 전전긍긍하다가 포기하는 분들을 많이 봤습니다. 에러를 확인하고, 그 원인을 찾아 수정하는 일에 익숙해지세요. 그리고 에러를 해결하는 희열도 느껴보시고요.

초보에서 고수로 가는 필수 과정입니다^^

5. 구현

자, 그럼 이제 두 가지 유형의 메시지를 보내보시죠.

[구현 순서]

Step 1 텍스트 템프릿 사용하여 카카오톡 메시지 보내기 Step 2 리스트 템플릿 사용하여 카카오톡 메시지 보내기

Step 1) 텍스트 템플릿 사용하여 카카오톡 보내기

텍스트 템플릿을 사용해서 메시지를 보내보도록 하겠습니다.

전체 코드

import json import requests url = “https://kapi.kakao.com/v2/api/talk/memo/default/send” # 사용자 토큰 headers = { “Authorization”: “Bearer ” + } data = { “template_object” : json.dumps({ “object_type” : “text”, “text” : “Hello, world!”, “link” : { “web_url” : “www.naver.com” } }) } response = requests.post(url, headers=headers, data=data) print(response.status_code) if response.json().get(‘result_code’) == 0: print(‘메시지를 성공적으로 보냈습니다.’) else: print(‘메시지를 성공적으로 보내지 못했습니다. 오류메시지 : ‘ + str(response.json()))

실행 결과

200이 프로그램 결과 화면에 출력되었다면 정상 동작을 의미합니다.

카카오톡을 보면, 아래와 같은 메시지가 전송됨을 확인할 수 있습니다.

코드 설명

라인번호 설명 1~2 필요한 라이브러리 선언 4 문서에 기재된 POST와 Host 정보를 조합하여 요청할 url 정의 6~9 문서에 기재된 Authorization 정보 기재 12~19 template_object에 필수(Requried)로 필수 요소 기재 20~22 요청 및 에러코드 확인

Step 2) 리스트 템플릿 사용하여 카카오톡 보내기

리스트 템플릿을 사용해서 메시지를 보내보도록 하겠습니다.

리스트 메시지는 2개 이상으로 구성되므로 contents 파라미터에 Content [ ] (파이썬에서 리스트 자료형)에 쓰여 있습니다.

contents의 구성요소는 다음과 같습니다. 리스트 안에 구성요소를 나열해주시면 됩니다.

필수적으로 필요한 항목이 많으니 필수(Required) Parameter를 주의를 기울여서 작성해봅니다.

전체 코드

import json import requests url = “https://kapi.kakao.com/v2/api/talk/memo/default/send” # 사용자 토큰 headers = { “Authorization”: “Bearer ” + } template = { “object_type” : “list”, “header_title” : “초밥 사진”, “header_link” : { “web_url” : “www.naver.com”, “mobile_web_url” : “www.naver.com” }, “contents” : [ { “title” : “1. 광어초밥”, “description” : “광어는 맛있다”, “image_url” : “https://search1.kakaocdn.net/argon/0x200_85_hr/8x5qcdbcQwi”, “image_width” : 50, “image_height” : 50, “link” : { “web_url” : “www.naver.com”, “mobile_web_url” : “www.naver.com” } }, { “title” : “2. 참치초밥”, “description” : “참치는 맛있다”, “image_url” : “https://search2.kakaocdn.net/argon/0x200_85_hr/IjIToH1S7J1”, “image_width” : 50, “image_height” : 50, “link” : { “web_url” : “www.naver.com”, “mobile_web_url” : “www.naver.com” } } ], “buttons” : [ { “title” : “웹으로 이동”, “link” : { “web_url” : “www.naver.com”, “mobile_web_url” : “www.naver.com” } } ] } data = { “template_object” : json.dumps(template) } res = requests.post(url, data=data, headers=headers) print(response.status_code) if response.json().get(‘result_code’) == 0: print(‘메시지를 성공적으로 보냈습니다.’) else: print(‘메시지를 성공적으로 보내지 못했습니다. 오류메시지 : ‘ + str(response.json()))

실행 결과

200이 프로그램 화면에 출력되었다면 정상 동작을 의미합니다.

카카오톡을 보면, 아래와 같은 메시지가 전송됨을 확인할 수 있습니다.

코드 설명

라인번호 설명 1~2 필요한 라이브러리 선언 4 문서에 기재된 POST와 Host 정보를 조합하여 요청할 url 정의 6~9 문서에 기재된 Authorization 정보 기재 11~50 template_object에 필수(Requried)로 필수 요소 기재 53~55 template변수를 json string 형식으로 변경 57 요청 58~62 에러코드 확인

ㅁ Trouble Shooting

카카오톡 메시지가 오지 않고, 프로그램 결과 화면에 출력된 결과가 다음과 같다면?

값이 잘못된 경우입니다.

제일 먼저 확인해봐야 할 사항은 정상적으로 발급받은 access token인지입니다.

혹시 어제까지 정상적으로 동작했는데 갑자기 안 되는 경우라면 , access token을 재발급받으셔야 합니다. access token은 유효한 시간이 있고, 그 시간이 지나 expired(기간 만료)돼었기 때문에 발생한 에러입니다.

재발급받는 방법은 카카오 사용자 토큰 재발급받기 를 확인해주세요.

ㅁ 요약정리

1. 원하는 정보를 나에게 카카오 메시지 로 보내면 유용합니다.

2. 다양한 메시지 유형 중 텍스트와 리스트 유형 을 다루어 보았습니다.

이 외에도 다른 유형의 메시지를 사용하고 싶으시다면, 공식 문서를 참고하세요

ㅁ 보충자료

A. 다양한 종류의 메시지 ‘더’ 알아보기

다양한 메시지 알아보기

메시지는 다양한 종류의 템플릿 중 하나를 선택하여 보내게 됩니다. 간단하게는 텍스트 템플릿부터 이미지, 텍스트, 버튼 등 다양한 형식으로 사용자가 직접 구성할 수 있는 커스텀 템플릿까지 제공하고 있습니다.

기본 템플릿(피드, 리스트, 위치, 커머스, 텍스트), 스크랩 템플릿, 커스텀 템플릿

3개의 그룹으로 분류, 총 7개의 유형 이 있습니다.

1) 피드 템플릿

피드 템플릿은 하나의 콘텐츠와 하나의 기본 버튼을 가집니다. 소셜 정보를 추가할 수 있으며 임의의 버튼을 설정할 수도 있습니다.

1. 이미지 영역: 최대 1장 표시 / 800px * 800px 이상 (권장사항)

2. 제목/설명 영역: 최대 4줄 표시 (제목, 설명 각각 2줄 표시)

3. 소셜 영역: 최대 3개 표시 (순서: 좋아요 > 댓글 > 공유 > 조회 > 구독)

4. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

피드 템플릿은 하나의 콘텐츠와 소셜 정보, 최대 두 개의 버튼을 가질 수 있습니다.

2) 리스트 템플릿

리스트 템플릿은 메시지 상단에 노출되는 헤더 타이틀과 콘텐츠 목록, 버튼 등으로 구성됩니다. 헤더와 콘텐츠 각각의 링크를 가질 수 있습니다. 피드 템플릿과 마찬가지로 하나의 기본 버튼을 가지며 임의의 버튼을 설정할 수 있습니다.

1. 헤더 영역

2. 아이템 리스트 영역: 최대 3개 표시

3. 제목/설명 영역: 최대 3줄 표시 (제목 2줄, 설명 1줄 표시)

4. 이미지 영역: 400px * 400px (권장 사항)

5. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

3) 위치 템플릿

위치 템플릿은 지도 표시에 사용되는 주소 정보와 해당 위치를 설명할 수 있는 콘텐츠 오브젝트로 구성됩니다.

1. 이미지 영역: 최대 1장 표시 / 800px * 800px이상 (권장사항)

2. 제목/설명 영역: 최대 4줄 표시 (제목, 설명 각각 2줄 표시)

3. 소셜 영역: 최대 3개 표시 (순서: 좋아요 > 댓글 > 공유 > 조회 > 구독)

4. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

4) 커머스 템플릿

커머스 템플릿은 하나의 콘텐츠, 커머스 콘텐츠와 하나의 기본 버튼을 가집니다.

1. 이미지 영역: 최대 1장 표시 / 800px * 800px이상 (권장사항)

2. 할인된 가격 영역

3. 정상 가격 영역

4. 할인율 영역

5. 제품명 영역: 최대 2줄 표시

6. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

5) 텍스트 템플릿(기본 Default)

텍스트 템플릿은 텍스트 영역과 버튼으로 구성됩니다. 다른 템플릿 지정이 없으면 텍스트 템플릿으로 보내게 됩니다.

1. 텍스트 영역: 최대 200자 표시

2. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

6) 스크랩 템플릿

스크랩 템플릿은 웹 사이트 콘텐츠를 해당 웹 페이지의 Open Graph 정보를 이용하여 별도의 템플릿 생성 작업 없이 URL만으로 메시지를 간편하게 전달하게 합니다.

1. 이미지 영역: 최대 1장 표시 / 800px * 800px이상 (권장사항)

2. 제목/설명 영역: 최대 4줄 표시 (제목, 설명 각각 2줄 표시)

3. 버튼 영역: 최대 1개 표시, 버튼명 8자 이하 권장

A. og:image / B. video:duration, music:duration / C. og:title, og:description / D. og:site_name

* 스크랩하려는 웹 사이트의 도메인은 반드시 내 애플리케이션 설정에 등록되어야 합니다.

* 도메인은 개발자 웹사이트의 [내 애플리케이션] – 앱 선택 – [설정] – [일반] 메뉴에서 등록할 수 있습니다

7) 커스텀 템플릿

사용자가 원하는 메시지를 사용하고 싶다면 ‘메시지 템플릿 빌더’를 사용하여 자신만의 메시지 템플릿을 자유롭게 만들 수 있습니다. 메시지 템플릿 빌더는 [내 애플리케이션] – 앱 선택 – [설정] – [메시지 템플릿 v2]에서 이용할 수 있습니다.

B. 커스텀 템플릿 사용하기

커스텀 템플릿을 사용하기 위해서는 [메시지 템플릿 v2]에서 사전에 사용할 메시지 템플릿을 정해주어야 합니다.

[템플릿 추가] 버튼 클릭

“피드 형식”으로 생성해봅니다. [확인] 클릭

사용자가 동적으로 다루기 위해서 “${변수}”의 형식으로 지정하여, 메시지를 보낼 때 동적으로 변경된 값을 보낼 수 있습니다.

[라이언] 클릭 > 우측으로 이동되며 [제목]을 ${name}으로 입력하고 [임시저장] 클릭

좌측에 라이언 -> ${name}으로 바뀐 것을 확인하고

[최종 저장]을 눌러서 [템플릿 이름]을 정하시고 [저장] 클릭!

좌측에 템플릿이 생성되었습니다. (20267 번호는 “template id”에 해당되며, 각기 다르게 부여됩니다.)

전체 코드

import requests # 커스텀 템플릿 주소 : https://kapi.kakao.com/v2/api/talk/memo/send talk_url = “https://kapi.kakao.com/v2/api/talk/memo/send” # 사용자 토큰 token = ‘<본인의 API키 넣기>‘ header = { “Authorization”: “Bearer {본인의 사용자 토큰 넣기}”.format( token=token ) } # 메시지 template id와 정의했던 ${name}을 JSON 형식으로 값으로 입력 payload = { ‘template_id’ : {본인의 template id 넣기}, ‘template_args’ : ‘{“name”: “테스트 제목”}’ } # 카카오톡 메시지 전송 res = requests.post(talk_url, data=payload, headers=header) if res.json().get(‘result_code’) == 0: print(‘메시지를 성공적으로 보냈습니다.’) else: print(‘메시지를 성공적으로 보내지 못했습니다. 오류메시지 : ‘ + str(res.json()))

저작물의 저작권은 작성자에게 있습니다.

공유는 자유롭게 하시되 댓글 남겨주세요~

상업적 용도로는 무단 사용을 금지합니다.

끝까지 읽어주셔서 감사합니다^^

카카오 알림톡 API – 알리고 문자

curl -X POST “https://kakaoapi.aligo.in/akv10/alimtalk/send/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx” \ –data-urlencode “senderkey=xxxxxxxxxx” \ –data-urlencode “sender=xxxxxxxxx” \ –data-urlencode “senddate=20230106180200” \ –data-urlencode “advert=Y” \ –form image= @localfilename \ –data-urlencode “image_url=https://smartsms.aligo.in” \ –data-urlencode “receiver_1=010xxxxxxxx” \ –data-urlencode “recvname_1=홍길동1” \ –data-urlencode “subject_1=제목1” \ –data-urlencode “message_1=내용1” \ –data-urlencode “button_1: { button: [{ “name” : 버튼명 “linkType” : AC, DS, WL, AL, BK, MD 중에서 1개 “linkTypeName” : 채널추가, 배송조회, 웹링크, 앱링크, 봇키워드, 메시지전달 중에서 1개 “linkMo” : 설정한 모바일 링크 “linkPc” : 설정한 PC 링크 “linkIos” : 설정한 IOS Scheme “linkAnd” : 설정한 Android Scheme }] }” \ –data-urlencode “failover=Y” \ –form fimage= @localfilename \ –data-urlencode “fsubject_1=문자제목1” \ –data-urlencode “fmessage_1=문자내용1”

curl -X POST “https://kakaoapi.aligo.in/akv10/alimtalk/send/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx” \ –data-urlencode “senderkey=xxxxxxxxxx” \ –data-urlencode “tpl_code=TXXXXXXXX” \ –data-urlencode “sender=xxxxxxxxx” \ –data-urlencode “senddate=20230106180200” \ –data-urlencode “receiver_1=010xxxxxxxx” \ –data-urlencode “recvname_1=홍길동1” \ –data-urlencode “subject_1=제목1” \ –data-urlencode “message_1=내용1” \ –data-urlencode “button_1: { button: [{ “name” : 버튼명 “linkType” : AC, DS, WL, AL, BK, MD 중에서 1개 “linkTypeName” : 채널추가, 배송조회, 웹링크, 앱링크, 봇키워드, 메시지전달 중에서 1개 “linkMo” : 설정한 모바일 링크 “linkPc” : 설정한 PC 링크 “linkIos” : 설정한 IOS Scheme “linkAnd” : 설정한 Android Scheme }] }” \ –data-urlencode “failover=Y” \ –data-urlencode “fsubject_1=문자제목1” \ –data-urlencode “fmessage_1=문자내용1”

NONE: 선택안함, TEXT: 강조표기형, IMAGE: 이미지형 String templtTitle 강조표기 핵심정보 String templtSubtitle 강조표기 보조문구 String templtImageName 템플릿 이미지 파일명 String templtImageUrl 템플릿 이미지 링크 String status 상태 (S: 중단, A: 정상, R: 대기) String inspStatus 승인상태 (REG: 등록, REQ: 심사요청, APR: 승인, REJ: 반려) String cdate 템플릿 생성일 String comments 템플릿 코멘트 Text buttons 템플릿에 사용된 버튼 정보 Array ordering 버튼 순서 (1 ~ 5) String name 버튼명 String linkType 버튼타입 (AC: 채널추가, DS: 배송조회, WL: 웹링크, AL: 앱링크, BK: 봇키워드, MD: 메시지전달) String linkTypeName 버튼타입명 String linkMo 모바일 웹링크 (WL일때) String linkPc PC 웹링크 (WL일때) String linkIos IOS 앱링크 (AL일때) String linkAnd 안드로이드 앱링크 (AL일때) String

알리고 문자 알림톡 발송 RESTful API 연동 안내 페이지입니다. 제공중인 카카오 알림톡 무료 연동 API SPEC와 예제.

  • Source: smartsms.aligo.in
  • Views: 12787
  • Publish date: 3 hours ago
  • Downloads: 60131
  • Likes: 3182
  • Dislikes: 1
  • Title Website: 카카오 알림톡 API – 알리고 문자
  • Description Website: 알리고 문자 알림톡 발송 RESTful API 연동 안내 페이지입니다. 제공중인 카카오 알림톡 무료 연동 API SPEC와 예제.

세부 정보를 보려면 여기를 클릭하십시오.

엑셀과 카카오톡을 하나로! | 카카오톡 문자보내기 자동화 | 윈도우 API 로 카톡 자동화 툴 만들기 (풀영상)

  • Source: Youtube
  • Views: 109931
  • Date: 13 minute ago
  • Download: 61720
  • Likes: 3904
  • Dislikes: 10

카카오 알림톡 API

API 호출을 위한 토큰 생성

API 호출을 위해서는 반드시 API 호출 토큰 스트링을 생성해야 합니다. 생성된 토큰 문자열은 호출한 API 스트링의 소유자 및 유효시간 정보를 포함하고 있습니다.

[ Request ]

POST /akv10/token/create/30/s/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다. API호출 URL의 유효시간을 결정하며 URL 의 구성중 “30”은

요청의 유효시간을 의미하며, “s”는 y(년), m(월), d(일), h(시), i(분), s(초) 중 하나이며 설정한 시간내에서만 토큰이 유효합니다.

운영중이신 보안정책에 따라 토큰의 유효시간을 특정 기간만큼 지정할 경우 매번 호출할 필요없이 해당 유효시간내에 재사용 가능합니다.

주의하실 점은 서버를 여러대 운영하실 경우 토큰은 서버정보를 포함하므로 각 서버에서 생성된 토큰 문자열을 사용하셔야 하며

토큰 문자열을 공유해서 사용하실 수 없습니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String

예를 들면,

curl -X POST ” https://kakaoapi.aligo.in/akv10/token/create/30/s/ ” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 성공시 0, 실패시 -99 Integer message code 값에 해당하는 결과 메시지 입니다. String token 생성된 TOKEN 스트링이 리턴됩니다. String urlencode 생성된 TOKEN 스트링에 URL 인코드를 적용하여 리턴합니다. String

토큰생성이 정상적으로 성공하였을 경우를 예로들면,

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “정상적으로 생성하였습니다.” “token”: z8eb77c428c46d04cf7db29U5vakS6dZB7bfAP+vBjX+RfWjtfNcQ== “urlencode”: z8eb77c428c46d04cf7db29U5vakS6dZB7bfAP%2BvBjX%2BRfWjtfNcQ%3D%3D }

토큰생성 요청이 실패한 경우를 예로들면,

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: -99 “message”: “계정 아이디(=userid) 파라메더 정보가 전달되지 않았습니다.” }

카카오채널 관리 – 인증요청

알림톡 및 친구톡을 전송하기 위해서는 반드시 카카오채널을 인증한 후 진행해야 합니다. 보유한 카카오채널 계정이 없을경우 ( https://center-pf.kakao.com ) 에서 등록하신 후 진행 가능합니다.

[ Request ]

POST /akv10/profile/auth/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다. 카카오톡을 통하여 인증메시지가 전송됩니다..

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String plusid 카카오채널 아이디(@포함) O String phonenumber 카카오채널 알림받는 관리자 핸드폰 번호 O String

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/profile/auth/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx” \ –data-urlencode “plusid=@테스트” \ –data-urlencode “phonenumber=01011111111”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message API 호출에 대한 결과 메시지 String

인증요청이 정상적으로 성공했을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “정상적으로 호출하였습니다.” }

인증요청이 실패하였을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 509 “message”: “요청한 번호가 카카오채널 관리자 알림 설정 되어있는지 확인해주세요.” }

카카오채널 관리 – 카테고리 조회

알림톡 발신프로필 심사요청시 사용가능한 카테고리 정보 입니다. “thirdBusinessType” 의 code 를 기입하시면 됩니다.

[ Request ]

POST /akv10/category/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/category/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message API 호출에 대한 결과 메시지 String data 조회된 카테고리 코드 String

인증요청이 정상적으로 성공했을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “정상적으로 호출하였습니다.” “data”: { firstBusinessType: [{“parentCode”: “”, “code”:”001″, “name”:”건강”}…], secondBusinessType: [{“parentCode”: “001”, “code”:”001001″, “name”:”병원”}…], thirdBusinessType: [{“parentCode”: “0010001”, “code”:”00100010001″, “name”:”종합병원”}…] } }

인증요청이 실패하였을 경우

HTTP/1.1 -99 OK Content-Type: application/json;charset=UTF-8 { “code”: 509 “message”: “계정 아이디(=userid) 파라메더 정보가 전달되지 않았습니다.” }

카카오채널 관리 – 친구등록 심사 요청

알림톡 및 친구톡을 전송하기 위해서는 카카오채널을 심사요청 후 진행해야 하며 다음-카카오측의 심사요청 결과에 따라 거부되어 재심사 요청이 발생할 수 있습니다.

[ Request ]

POST /akv10/profile/add/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다. 카카오톡을 통하여 인증메시지가 전송됩니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String plusid 카카오채널 아이디(@포함) O String authnum 발신프로필 인증번호

(“카카오채널 관리 – 인증요청 API” 로 생성) O String phonenumber 카카오채널 알림받는 관리자 핸드폰 번호 O String categorycode 발신프로필의 카테고리 코드

(“카카오채널 관리 – 카테고리 조회” 로 확인) O String

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/profile/add/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx” \ –data-urlencode “plusid=@테스트” \ –data-urlencode “authnum=12345” \ –data-urlencode “phonenumber=01000000000” –data-urlencode “categorycode=00000000000”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message API 호출에 대한 결과 메시지 String data 생성된 발신 프로필 키 array senderKey 발신프로필키 text uuid 플러스친구 text name 플러스친구 프로필명 text status 상태(A:정상, S:차단, D:삭제) text profileStat 플러스친구 상태

(A:activated, C:deactivated, B:block, E:deleting, D:deleted) text cdate 등록일 text udate 최종수정일 text catCode 카테고리 코드 text alimUseYn 알림톡 사용 여부 boolean

인증요청이 정상적으로 성공했을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “정상적으로 호출하였습니다.” “data”: [{ “senderKey”: “XXXXXXXXXXXXXXXXXXXXXXXXXX”, “uuid”: “@xxxx”, “name”: “xxxx”, “status”: “A”, “profileStat”: “A”, “cdate”: “2023-01-06 17:52:08”, “udate”: “2023-01-06 17:52:08”, “catCode”: “00000000000”, “alimUseYn”: false }] }

인증요청이 실패하였을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 509 “message”: “요청한 번호가 카카오채널 관리자 알림 설정 되어있는지 확인해주세요.” }

카카오채널 관리 – 등록된 카카오채널 리스트

등록된 카카오채널 목록을 조회합니다.

[ Request ]

POST /akv10/profile/list/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String plusid 카카오채널 아이디(@포함) X String senderkey 발신프로필 키 X String

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/profile/list/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message API 호출에 대한 결과 메시지 String list 등록된 발신프로필 목록 array senderKey 발신프로필키 String catCode 카테고리 코드 String name 발신 프로필명 String profileStat 카카오채널 상태

(A:activated, C:deactivated, B:block, E:deleting, D:deleted) String status 상태(A:정상, S:차단, D:삭제) String cdate 등록일 Text udate 최종 수정일 Text

정상적으로 성공했을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “정상적으로 호출하였습니다.” “list”: [{ “senderKey”: “000000000000000000000000000000000000”, “license”: “http://mud-kage.kakao.com/dn/0000/0000/00000000000000000/img.png”, “catCode”: “00000000000”, “alimUseYn”: false, “cdate”: “2023-01-06 17:52:08”, “name”: “테스트”, “profileStat”: “A”, “licenseNum”: “테스트”, “udate”: “2023-01-06 17:52:08”, “uuid”: “@test”, “status”: “A” }] }

인증요청이 실패하였을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: -99 “message”: “토큰(=token) 파라메더가 전달되지 않았습니다.” }

템플릿 관리 – 등록된 템플릿 리스트

등록된 템플릿 목록을 조회합니다. 템플릿 코드가 D 나 P 로 시작하는 경우 공유 템플릿이므로 삭제 불가능 합니다.

[ Request ]

POST /akv10/template/list/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String senderkey 발신프로필 키 O String tpl_code 템플릿 코드 X String

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/template/list/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message API 호출에 대한 결과 메시지 String list 등록된 발신프로필 목록 array senderKey 발신프로필키 String templtCode 템플릿 코드 String templtContent 등록된 템플릿 콘텐츠 String templtName 템플릿 명 String templateType 템플릿 메세지 유형

BA: 기본형, EX: 부가 정보형, AD: 광고 추가형, MI: 복합형 String templateEmType 템플릿 강조유형

NONE: 선택안함, TEXT: 강조표기형, IMAGE: 이미지형 String templtTitle 강조표기 핵심정보 String templtSubtitle 강조표기 보조문구 String templtImageName 템플릿 이미지 파일명 String templtImageUrl 템플릿 이미지 링크 String status 상태 (S: 중단, A: 정상, R: 대기) String inspStatus 승인상태 (REG: 등록, REQ: 심사요청, APR: 승인, REJ: 반려) String cdate 템플릿 생성일 String comments 템플릿 코멘트 Text buttons 템플릿에 사용된 버튼 정보 Array ordering 버튼 순서 (1 ~ 5) String name 버튼명 String linkType 버튼타입 (AC: 채널추가, DS: 배송조회, WL: 웹링크, AL: 앱링크, BK: 봇키워드, MD: 메시지전달) String linkTypeName 버튼타입명 String linkMo 모바일 웹링크 (WL일때) String linkPc PC 웹링크 (WL일때) String linkIos IOS 앱링크 (AL일때) String linkAnd 안드로이드 앱링크 (AL일때) String

정상적으로 성공했을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “정상적으로 호출하였습니다.” “list”: [{ “templtContent”: “#{고객명}님께서 주문하신 물품이\r

배송완료 되었습니다.\r

구매확정 부탁드립니다.”, “templtName”: “배송완료 안내”, “status”: “R”, “inspStatus”: “APR”, “senderKey”: “000000000000000000000000000000000000”, “buttons”: [ { “ordering”: “1”, “name”: “구매확정바로가기”, “linkType”: “WL”, “linkTypeName”: “웹링크”, “linkMo”: “http://#{구매확정바로가기}”, “linkPc”: “http://#{구매확정바로가기}”, “linkIos”: “”, “linkAnd”: “” } ], “cdate”: “2018-12-28 17:21:40”, “templtCode”: “P000004”, “comments”: [] }], “info”: { “REG”: 0, “REQ”: 0, “APR”: 1, “REJ”: 0 } }

템플릿 관리 – 신규 템플릿 생성

알림톡을 전송하기 위해서는 템플릿을 작성해야 하며, 작성된 템플릿은 다음-카카오측의 4-5일간의 검수후 결과에 따라 거부되어 재작성 요청이 발생할 수 있습니다.

[ Request ]

POST /akv10/template/add/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다. 등록한 템플릿에 대한 검수는 API로 요청을 하셔야 합니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String senderkey 발신프로파일 키 O String tpl_name 템플릿 이름 O String tpl_content 템플릿 내용 O String tpl_secure 보안 템플릿 여부 X “Y” or “N” tpl_type 템플릿 메세지 유형 X BA: 기본형, EX: 부가 정보형, AD: 광고 추가형, MI: 복합형 tpl_emtype 템플릿 강조유형 X NONE: 선택안함, TEXT: 강조표기형, IMAGE: 이미지형 tpl_extra 부가 정보 X String tpl_title 강조표기 핵심정보 X String tpl_stitle 강조표기 보조문구 X String image 템플릿 이미지 X JPEG,PNG tpl_name 템플릿 이름 O String

tpl_button 상세

변수 설명 필수 타입 name 버튼명 O String linkType 버튼의 링크타입

(AC: 채널추가, DS: 배송조회, WL: 웹링크, AL: 앱링크, BK: 봇키워드, MD: 메시지전달) O String linkM 모바일 웹링크주소

(http:// 또는 https:// 필수) WL 일때 필수 String linkP PC 웹링크주소

(http:// 또는 https:// 필수) WL 일때 필수 String linkI IOS 앱링크주소 AL 일때 필수 String linkA Android 앱링크주소 AL 일때 필수 String

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/template/add/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx” \ –data-urlencode “senderkey=xxxxxxxxxx” \ –data-urlencode “tpl_name=테스트이름” \ –data-urlencode “tpl_content=테스트내용” –data-urlencode “tpl_button={“button”:[{“name”:”웹링크”,”linkType”:”WL”,”linkM”:”http:\/\/#{버튼변수}”, “linkP”:”http:\/\/#{버튼변수}”}]}”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message API 호출에 대한 결과 메시지 String data 생성한 템플릿 정보 String

템플릿생성 요청이 정상적으로 성공했을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “정상적으로 템플릿을 생성하였습니다.” “data”: { “senderKey”: “XXXXXXXXXXXXXX”, “templtContent”: “등록한 템플릿 컨텐츠”, “templtName”: “등록한 템플릿 명”, “cdate”: “2023-01-06 17:52:08”, “comments”: [], “buttons”: [ { “ordering”: “1”, “name”: “웹링크”, “linkType”: “WL”, “linkTypeName”: “웹링크”, “linkMo”: “http://#{버튼변수}”, “linkPc”: “http://#{버튼변수}”, “linkIos”: “”, “linkAnd”: “” } ], “templtCode”: XXXXXXXX “udate”: “inspStatus”: REG “status”: R } }

템플릿생성 요청이 실패하였을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: -99 “message”: “발신 프로파일 키(=senderkey)파라메더 정보가 전달되지 않았습니다.” }

템플릿 관리 – 템플릿 수정

작성 또는 반려된 템플릿을 수정하는 기능이며, 템플릿상태가 대기(R)이고 템플릿 검수상태가 등록(REG) 또는 반려(REJ)인 경우에만

수정 가능합니다.

[ Request ]

POST /akv10/template/modify/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다. 등록한 템플릿에 대한 검수는 API로 요청을 하셔야 합니다. .

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String senderkey 발신프로파일 키 O String tpl_code 템플릿 코드 O String tpl_name 템플릿 이름 O String tpl_content 템플릿 내용 O String tpl_button 템플릿 버튼 X JSON tpl_secure 보안 템플릿 여부 X “Y” or “N” tpl_type 템플릿 메세지 유형 X AC: 채널추가, BA: 기본형, EX: 부가 정보형, AD: 광고 추가형, MI: 복합형 tpl_emtype 템플릿 강조유형 X NONE: 선택안함, TEXT: 강조표기형, IMAGE: 이미지형 tpl_extra 부가 정보 X String tpl_title 강조표기 핵심정보 X String tpl_stitle 강조표기 보조문구 X String image 템플릿 이미지 X JPEG,PNG

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/template/modify/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx” \ –data-urlencode “senderkey=xxxxxxxxxx” \ –data-urlencode “tpl_name=템플릿코드” \ –data-urlencode “tpl_name=수정된템플릿명” \ –data-urlencode “tpl_content=수정된템플릿내용” –data-urlencode “tpl_button={“button”:[{“name”:”웹링크”,”linkType”:”WL”,”linkM”:”http:\/\/#{버튼변수}”, “linkP”:”http:\/\/#{버튼변수}”}]}”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message API 호출에 대한 결과 메시지 String data 생성한 템플릿 정보 String

템플릿수정 요청이 정상적으로 성공했을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “정상적으로 템플릿을 수정하였습니다.” “data”: { “senderKey”: “XXXXXXXXXXXXXX”, “templtContent”: “수정한 템플릿 컨텐츠”, “templtName”: “수정한 템플릿 명”, “cdate”: “2023-01-06 17:52:08”, “comments”: [], “buttons”: [ { “ordering”: “1”, “name”: “웹링크”, “linkType”: “WL”, “linkTypeName”: “웹링크”, “linkMo”: “http://#{버튼변수}”, “linkPc”: “http://#{버튼변수}”, “linkIos”: “”, “linkAnd”: “” } ], “templtCode”: XXXXXXXX “udate”: “inspStatus”: REG “status”: R } }

템플릿수정 요청이 실패하였을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 509 “message”: “수정 가능 상태가 아닙니다.” }

템플릿 관리 – 템플릿 삭제 요청

승인이 이루어지지 않은 템플릿에 대하여 삭제요청 합니다. 삭제는 즉시 이루어 지나 이미 승인이 완료된 템플릿은 삭제불가 합니다.

[ Request ]

POST /akv10/template/del/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String senderkey 발신프로파일 키 O String tpl_code 템플릿 코드 O String

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/template/del/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx” \ –data-urlencode “senderkey=xxxxxxxxxx” \ –data-urlencode “tpl_code=TXXXXXXXX”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message API 호출에 대한 결과 메시지 String

템플릿삭제 요청이 정상적으로 성공했을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “정상적으로 템플릿을 삭제 하였습니다.” }

템플릿삭제 요청이 실패하였을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: -99 “message”: “발신 프로파일 키(=senderkey)파라메더 정보가 전달되지 않았습니다.” }

템플릿 관리 – 템플릿 검수 요청

작성이 완료된 템플릿에 대하여 검수요청을 합니다. 검수 결과에 따라 재작성 요청이 발생 할 수 있습니다.

[ Request ]

POST /akv10/template/request/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다. 검수기간은 4-5일 정도가 소요되며 결과에 따라 재작성 요청이 발생 할 수있습니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String senderkey 발신프로파일 키 O String tpl_code 템플릿 코드 O String

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/template/request/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx” \ –data-urlencode “senderkey=xxxxxxxxxx” \ –data-urlencode “tpl_code=TXXXXXXXX”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message API 호출에 대한 결과 메시지 String

템플릿검수 요청이 정상적으로 성공했을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “검수요청을 하였습니다.” }

템플릿검수 요청이 실패하였을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: -99 “message”: “발신 프로파일 키(=senderkey)파라메더 정보가 전달되지 않았습니다.” }

알림톡 전송

알림톡 전송을 요청합니다. 템플릿 서식과 일치하지 않을경우 전송되지 않습니다.

[ Request ]

POST /akv10/alimtalk/send/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String senderkey 발신프로파일 키 O String tpl_code 템플릿 코드 O String sender 발신자 연락처 O String senddate 예약일 X datetime receiver_1 (1 ~ 500) 수신자 연락처 O String recvname_1 (1 ~ 500) 수신자 이름 X String subject_1 (1 ~ 500) 알림톡 제목 O String message_1 (1 ~ 500) 알림톡 내용 O String emtitle_1 (1 ~ 500) 강조표기형의 타이틀 X String button_1 (1 ~ 500) 버튼 정보 X JSON failover 실패시 대체문자 전송기능 X Y or N fsubject_1 (1 ~ 500) 실패시 대체문자 제목 X String fmessage_1 (1 ~ 500) 실패시 대체문자 내용 X String testMode 테스트 모드 적용여부 (Y or N) X (기본 N) String

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/alimtalk/send/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx” \ –data-urlencode “senderkey=xxxxxxxxxx” \ –data-urlencode “tpl_code=TXXXXXXXX” \ –data-urlencode “sender=xxxxxxxxx” \ –data-urlencode “senddate=20230106180200” \ –data-urlencode “receiver_1=010xxxxxxxx” \ –data-urlencode “recvname_1=홍길동1” \ –data-urlencode “subject_1=제목1” \ –data-urlencode “message_1=내용1” \ –data-urlencode “button_1: { button: [{ “name” : 버튼명 “linkType” : AC, DS, WL, AL, BK, MD 중에서 1개 “linkTypeName” : 채널추가, 배송조회, 웹링크, 앱링크, 봇키워드, 메시지전달 중에서 1개 “linkMo” : 설정한 모바일 링크 “linkPc” : 설정한 PC 링크 “linkIos” : 설정한 IOS Scheme “linkAnd” : 설정한 Android Scheme }] }” \ –data-urlencode “failover=Y” \ –data-urlencode “fsubject_1=문자제목1” \ –data-urlencode “fmessage_1=문자내용1”

[Notice]

1. 템플릿에 추가하지 않은 버튼에 대한 정보는 삭제하셔도 무방합니다.

2. 알림톡 내용(message)은 템플릿과 동일하게 개행문자를 입력하셔야 합니다.

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message API 호출에 대한 결과 메시지 String info 알림톡 전송후 잔여포인트 및 소비단가 정보 Object

info 변수 설명 변수 설명 타입 type AT String mid 메시지 ID Integer current 포인트 Float unit 개별전송단가 Float total 전체전송단가 Float scnt 정상적으로 요청된 연락처 갯수 Integer fcnt 잘못 요청된 연락처 갯수 Integer

알림톡 전송이 성공하였을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “성공적으로 전송요청 하였습니다.” “info” : { “type”: “AT”, “mid”: “XXXXXXXX”, “current”: 0, “unit”: 0, “total”: 0, “scnt”: 0, “fcnt”: 0 } }

알림톡 전송이 실패하였을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: -99 “message”: “포인트가 부족합니다.” }

친구톡 전송

친구톡 전송을 요청합니다.

[ Request ]

POST /akv10/friend/send/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String senderkey 발신프로파일 키 O String sender 발신자 연락처 O String senddate 예약일 X datetime advert 광고분류 X(기본 Y) String image 첨부이미지 X JPEG,PNG image_url 첨부이미지 링크 X String receiver_1 (1 ~ 500) 수신자 연락처 O String recvname_1 (1 ~ 500) 수신자 이름 X String subject_1 (1 ~ 500) 친구톡 제목 O String message_1 (1 ~ 500) 친구톡 내용 O String button_1 (1 ~ 500) 버튼 정보 X JSON failover 실패시 대체문자 전송기능 X Y or N fimage 실패시 첨부이미지 X JPEG,PNG fsubject_1 (1 ~ 500) 실패시 대체문자 제목 X String fmessage_1 (1 ~ 500) 실패시 대체문자 내용 X String testMode 테스트 모드 적용여부 (Y or N) X (기본 N) String

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/alimtalk/send/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxxxxxxxxxxxxxxxx” \ –data-urlencode “senderkey=xxxxxxxxxx” \ –data-urlencode “sender=xxxxxxxxx” \ –data-urlencode “senddate=20230106180200” \ –data-urlencode “advert=Y” \ –form image= @localfilename \ –data-urlencode “image_url=https://smartsms.aligo.in” \ –data-urlencode “receiver_1=010xxxxxxxx” \ –data-urlencode “recvname_1=홍길동1” \ –data-urlencode “subject_1=제목1” \ –data-urlencode “message_1=내용1” \ –data-urlencode “button_1: { button: [{ “name” : 버튼명 “linkType” : AC, DS, WL, AL, BK, MD 중에서 1개 “linkTypeName” : 채널추가, 배송조회, 웹링크, 앱링크, 봇키워드, 메시지전달 중에서 1개 “linkMo” : 설정한 모바일 링크 “linkPc” : 설정한 PC 링크 “linkIos” : 설정한 IOS Scheme “linkAnd” : 설정한 Android Scheme }] }” \ –data-urlencode “failover=Y” \ –form fimage= @localfilename \ –data-urlencode “fsubject_1=문자제목1” \ –data-urlencode “fmessage_1=문자내용1”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message API 호출에 대한 결과 메시지 String info 친구톡 전송 후 잔여포인트 및 소비단가 정보 Object

info 변수 설명 변수 설명 타입 type FT String mid 메시지 ID Integer current 포인트 Float unit 개별전송단가 Float total 전체전송단가 Float scnt 정상적으로 요청된 연락처 개수 Integer fcnt 잘못 요청된 연락처 개수 Integer

친구톡 전송이 성공하였을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “성공적으로 전송요청 하였습니다.” “info” : { “type”: “AT”, “mid”: “XXXXXXXX”, “current”: 0, “unit”: 0, “total”: 0, “scnt”: 0, “fcnt”: 0 } }

친구톡 전송이 실패하였을 경우

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: -99 “message”: “포인트가 부족합니다.” }

전송내역조회

최근 요청및 처리된 전송내역을 조회하실 수 있습니다. 사이트내 전송결과조회 페이지와 동일한 내역이 조회되며, 날짜기준으로 조회가 가능합니다. 발신번호별 조회기능은 제공이 되지 않습니다. 조회시작일을 지정하실 수 있으며, 시작일 이전 몇일까지 조회할지 설정이 가능합니다. 조회시 최근발송내역 순서로 소팅됩니다.

[ Request ]

POST /akv10/history/list/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 토큰 O String page 페이지번호 X(기본 1) Integer limit 페이지당 출력갯수 X(기본 50) 50~500 Integer startdate 조회시작일자 X(기본 최근일자) YYYYMMDD enddate 조회마감일자 X YYYYMMDD

오늘기준 7일전 전송내역 조회를 예로 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/history/list/” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “token=xxxxx” \ –data-urlencode “page=1” \ –data-urlencode “limit=50” \ –data-urlencode “startdate=20221206” \ –data-urlencode “enddate=20230106”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message 결과 메시지( code 가 0 이 아닌경우 실패사유 표기) String list 목록 배열 Array currentPage 현재 페이지 Integer totalPage 전체 페이지 Integer totalCount 전체 메시지 갯수 Integer

list 배열 변수 설명 타입 mid 메시지ID Integer type 문자구분(유형) String sender 발신번호 String msg_count 전송요청수 Integer mbody 메시지내용 String reserve_date 메시지 예약일 String reserve_state 메시지 상태 String regdate 등록일 String

최근 발송된 건을 조회한 경우를 예로들면,

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “정상적으로 호출하였습니다.” “list”: [{ “mid”: “123456788” “type”: “AT” “sender”: “025114560” “msg_count”: “1” “reserve_date”: “20230106175208” “reserve_state”: “예약대기중” “mbody”: “API 전송테스트 입니다.” “reg_date”: “2023-01-06 17:17:08” }] “currentPage”: “1” “totalPage”: “1” “totalCount”: “1” }

전송요청이 실패한 경우를 예로들면,

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: -99 “message”: “인증오류입니다.” }

전송결과조회(상세)

API에서 조회되는 mid를 사용하여 수신번호별 상태를 조회하실 수 있습니다. 수신전화번호별 전송상태를 조회하실 수 있으며 목록에 없거나 전송중인 문자는 만24시간동안 전송시도중인것입니다. 최종 24시간이 경과 후 조회하셔야 완료된 내역을 확인하실 수 있습니다.

[ Request ]

POST /akv10/history/detail/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다. 통신사에 전달 후 전송결과가 통보되지 않은 경우에는 목록에 나오지 않거나, 전송중으로 나올 수 있습니다. 24시간 후 최종 결과를 확인하시기 바랍니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String mid 메시지 고유ID O Integer page 페이지번호 X(기본 1) Integer limit 페이지당 출력갯수 X(기본 50) 50~500 Integer

mid 123456789 의 전송결과 상세 조회를 예로 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/history/detail/” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “token=xxxxx” \ –data-urlencode “mid=123456678” \ –data-urlencode “page=1” \ –data-urlencode “limit=50”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message 결과 메시지( code 가 0 이 아닌경우 실패사유 표기) String list 목록 배열 Array currentPage 현재 페이지 Integer totalPage 전체 페이지 Integer totalCount 전체 메시지 갯수 Integer

list 배열 변수 설명 타입 msgid 메시지 상세ID (전송중인 경우 앞에 “Q” 가 붙음) String type 문자구분(유형) String sender 발신번호 String phone 수신번호 String status 메시지 상태

(2 : 카카오 인식불가 번호포맷, 3 : 카카오 인식가능 번호포맷) Integer reqdate 요청일 YYYY-MM-DD HH:ii:ss sentdate 전송일 YYYY-MM-DD HH:ii:ss rsltdate 응답일 YYYY-MM-DD HH:ii:ss reportdate 결과값갱신일 YYYY-MM-DD HH:ii:ss rslt 상태 String rslt_message 사유 String message 전송한 내용 String button_json 버튼내용 String tpl_code 템플릿 코드 String senderKey 프로파일키 String smid 대체문자 전송시 mid Integer

최근 발송된 메시지를 조회한 경우를 예로들면,

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 0 “message”: “정상적으로 호출하였습니다.” “list”: [{ “msgid”: “123456788” , “type”: “AT” , “sender”: “025114560” , “phone”: “010XXXXXXXX” , “status”: “3” , “reqdate”: “2023-01-06 17:52:08” , “sentdate”: “2023-01-06 17:52:08” , “rsltdate”: “2023-01-06 17:52:08” , “reportdate”: “2023-01-06 17:52:08” , “rslt”: “U” , “rslt_message”: “메시지가 템플릿과 일치하지않음” , “message”: “API 전송테스트 입니다.” , “button_json”: “{}” , “tpl_code”: “XXXXXXX” , “senderKey”: “XXXXXXX” , “smid”: “0” }] “currentPage”: “1” , “totalPage”: “1” , “totalCount”: “1” }

전송요청이 실패한 경우를 예로들면,

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: -101 “message”: “인증오류입니다.” }

발송가능건수

보유한 잔여포인트로 발송가능한 잔여건수를 문자구분(유형)별로 조회하실 수 있습니다. SMS, LMS, MMS, ALT 로 발송시 가능한 잔여건수이며 남은 충전금을 문자유형별로 보냈을 경우 가능한 잔여건입니다. 예를들어 SMS_CNT : 11 , ALT_CNT : 15 인 경우 단문전송시 11건이 가능하고, 알림톡으로 전송시 15건이 가능합니다.

[ Request ]

POST /akv10/heartinfo/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 토큰 O String

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/heartinfo/” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “token=xxxxx”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 result_code 결과코드(API 수신유무) Integer message 결과 메시지( result_code 가 0 보다 작은경우 실패사유 표기) String SMS_CNT 단문전송시 발송가능한건수 Integer LMS_CNT 단문전송시 발송가능한건수 Integer MMS_CNT 그림(사진)전송시 발송가능한건수 Integer ALT_CNT 알림톡 전송시 발송가능한건수 Integer

조회에 성공한 경우를 예로들면,

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 1 “message”: “” “list” : { “SMS_CNT”: 5555 “LMS_CNT”: 1930 “MMS_CNT”: 833 } }

전송요청이 실패한 경우를 예로들면,

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: -99 “message”: “인증오류입니다.” }

예약문자 취소

API를 통해 예약한 내역을 전송취소할 수 있습니다. 예약취소는 발송전 5분이전의 문자만 가능합니다.

[ Request ]

POST /akv10/cancel/ HTTP/1.1 Host: kakaoapi.aligo.in Service Port: 443

https 프로토콜을 사용하여 POST로 요청합니다.

변수 설명 필수 타입 apikey 인증용 API Key O String userid 사용자id O String token 생성한 토큰 O String mid 메시지ID O Integer

예를 들면,

curl -X POST “https://kakaoapi.aligo.in/akv10/cancel/” \ –data-urlencode “userid=xxxxx” \ –data-urlencode “apikey=xxxxx” \ –data-urlencode “token=xxxxx” \ –data-urlencode “mid=123456789”

[Response]

응답 바디는 JSON 객체로 구성됩니다.

JSON 변수 설명 타입 code 결과코드(API 수신유무) Integer message 결과 메시지( result_code 가 0 이 아닌 경우 실패사유 표기) String

정상취소가 완료된 경우를 예로들면,

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: 1 “message”: “” }

전송요청이 실패한 경우를 예로들면,

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { “code”: -99 “message”: “발송 5분전까지만 취소가 가능합니다.” }

연동형 API로 처리 실패시 message 항목의 안내문구를 참고하여 주시기 바랍니다.

JAVA로 카카오 메시지 API연동 – 발개발 – 티스토리

25 thg 2, 2022 — 즉, http://localhost:88 을 controller로 작성하여 kakao API에서 Return 해주는 code값을 받을 예정이다. 카카오 메시지를 사용하기 위해 브라우저를 …

  • Source: foot-develop.tistory.com
  • Views: 60255
  • Publish date: 12 hours ago
  • Downloads: 73356
  • Likes: 7327
  • Dislikes: 1
  • Title Website: JAVA로 카카오 메시지 API연동 – 발개발 – 티스토리
  • Description Website: 25 thg 2, 2022 — 즉, http://localhost:88 을 controller로 작성하여 kakao API에서 Return 해주는 code값을 받을 예정이다. 카카오 메시지를 사용하기 위해 브라우저를 …

세부 정보를 보려면 여기를 클릭하십시오.

FastAPI 나에게 카카오톡 보내기, 풀코스 튜토리얼 Python

  • Source: Youtube
  • Views: 63162
  • Date: 5 hours ago
  • Download: 47322
  • Likes: 1616
  • Dislikes: 1

JAVA로 카카오 메시지 API연동

토이프로젝트를 진행하던 중, 카카오 메시지 API연동이 필요하던 참이었다.

목적이 Spring scheduler를 이용해 일정 시간마다 필요한 정보를 나에게 메시지를 뿌려주는 것이기 때문에 따로 화면단이 필요 없었다.

좀 편하게 하려고 누군가 java로 카카오 API 연동한 사례를 찾아보려고 했는데, 아무리 찾아봐도 백엔드단에서 카카오 메시지 API 연동을 Java로 이용한 사례가 없기 때문에 직접 구현해서 공유해보려고 한다. ㅠㅠ

언젠가 누군가에겐 1g의 도움이 되길 바라며 작성해볼까 한다,,

STEP1. Kakao Develpopers 가입 및 애플리케이션 추가

https://developers.kakao.com/ 해당 사이트에 가입한 후, 내 어플리케이션을 추가해준다.

STEP2. 내 애플리케이션 셋팅

코드를 작업하기에 앞서, 로그인 후 카카오 API에서 return해주는 인가코드 값을 받아줄 서버의 IP, PORT를 입력해준다. 내 애플리케이션 > 제품 설정 > 카카오 로그인을 들어가면 등록해줄 수 있다. 본인의 경우 local에서 88번 port로 인가코드 값을 받을 것이다. 즉, http://localhost:88 을 controller로 작성하여 kakao API에서 Return 해주는 code값을 받을 예정이다.

카카오 메시지를 사용하기 위해 브라우저를 통해 카카오 로그인을 진행한 후 발급받은 인가코드를 통해 토큰을 받급받고 해당 토큰으로 메시지를 전송할 수 있기 때문에, 코드작성에 앞서 문서를 읽어보는 것을 권유한다.

이해하기 | Kakao Developers 문서

이해하기 | Kakao Developers 문서

STEP3. 프로젝트 생성

Spring initializr를 통해 Spring Web 디펜던시를 추가해준 후 프로젝트를 생성한다.

Project Import 후 의존성을 추가해준다.

> build.gradle

dependencies { implementation ‘org.springframework.boot:spring-boot-starter-web’ implementation group: ‘org.json’, name: ‘json’, version: ‘20210307’ testImplementation ‘org.springframework.boot:spring-boot-starter-test’ }

KAKAO API에서 json형태로 응답해주는 값들을 java에서 손쉽게 파싱하게위해 json dependency를 추가해 준다.

STEP 4. Class 생성

먼저, HttpCall서비스를 담당해줄 클래스를 작성해준다. 본인은 RestTemplate을 통해 HttpCallService를 구현할 것이다.

RestTemplate를 쓰면 코드의 분량도 훨씬 적어지고 가독성이 좋기 때문에 선택했다.

> HttpCallService

public class HttpCallService { protected static final String APP_TYPE_URL_ENCODED = “application/x-www-form-urlencoded;charset=UTF-8”; protected static final String APP_TYPE_JSON = “application/json;charset=UTF-8”; /** * Http 요청 클라이언트 객체 생성 method * * @ param Map header HttpHeader 정보 * @ param Object params HttpBody 정보 * @ return HttpEntity 생성된 HttpClient객체 정보 반환 * @ exception 예외사항 */ public HttpEntity httpClientEntity(HttpHeaders header, Object params) { HttpHeaders requestHeaders = header; if (params == null || “”.equals(params)) return new HttpEntity<>(requestHeaders); else return new HttpEntity<>(params, requestHeaders); } /** * Http 요청 method * * @ param String url 요청 URL 정보 * @ param HttpMethod method 요청 Method 정보 * @ param HttpEntity entity 요청 EntityClient 객체 정보 * @ return HttpEntity 생성된 HttpClient객체 정보 반환 */ public ResponseEntity httpRequest(String url, HttpMethod method, HttpEntity entity){ RestTemplate restTemplate = new RestTemplate(); return restTemplate.exchange(url, method, entity,String.class); } /** * Http 요청 method * * @ param URI url 요청 URL 정보 * @ param HttpMethod method 요청 Method 정보 * @ param HttpEntity entity 요청 EntityClient 객체 정보 * @ return HttpEntity 생성된 HttpClient객체 정보 반환 */ public ResponseEntity httpRequest(URI url, HttpMethod method, HttpEntity entity){ RestTemplate restTemplate = new RestTemplate(); return restTemplate.exchange(url, method, entity,String.class); } }

그 다음 해당 HttpCallService를 통해 카카오 API에서 토큰을 발급받을 클래스를 작성해준다.

> AuthService

@Service public class AuthService extends HttpCallService{ private Logger logger = LoggerFactory.getLogger(this.getClass()); private static final String AUTH_URL = “https://kauth.kakao.com/oauth/token”; public static String authToken; public boolean getKakaoAuthToken(String code) { HttpHeaders header = new HttpHeaders(); String accessToken = “”; String refrashToken = “”; MultiValueMap parameters = new LinkedMultiValueMap<>(); header.set(“Content-Type”, APP_TYPE_URL_ENCODED); parameters.add(“code”, code); parameters.add(“grant_type”, “authorization_code”); parameters.add(“client_id”, “your client id”); parameters.add(“redirect_url”, “http://localhost:88”); parameters.add(“client_secret”, “your client secret”); HttpEntity requestEntity = httpClientEntity(header, parameters); ResponseEntity response = httpRequest(AUTH_URL, HttpMethod.POST, requestEntity); JSONObject jsonData = new JSONObject(response.getBody()); accessToken = jsonData.get(“access_token”).toString(); refrashToken = jsonData.get(“refresh_token”).toString(); if(accessToken.isEmpty() || refrashToken.isEmpty()) { logger.debug(“토큰발급에 실패했습니다.”); return false; }else { authToken = accessToken; return true; } } }

client_id는 Kakao Developers 내 애플리케이션 해당 사이트에서 내 애플리케이션을 클릭하고 들어가면

이런식으로 키값을 확인할 수 있다. 여기서 REST API키 값을 입력해주면 된다.

client_secret은 아래의 사진에 있는 메뉴에 들어가면 발급받을 수 있다. 필수 값이 아니기 때문에, 발급을 안받고 parameter에서 삭제해도 무사히 진행될 것이다.

그 다음 직접 카카오 메시지를 보낼 클래스를 작성해주자!

> DefaultMessageDto

public class DefaultMessageDto { private String objType; private String text; private String webUrl; private String mobileUrl; private String btnTitle; public String getObjType() { return objType; } public void setObjType(String objType) { this.objType = objType; } public String getText() { return text; } public void setText(String text) { this.text = text; } public String getWebUrl() { return webUrl; } public void setWebUrl(String webUrl) { this.webUrl = webUrl; } public String getMobileUrl() { return mobileUrl; } public void setMobileUrl(String mobileUrl) { this.mobileUrl = mobileUrl; } public String getBtnTitle() { return btnTitle; } public void setBtnTitle(String btnTitle) { this.btnTitle = btnTitle; } }

카카오 API에 Request할때 필수로 필요한 값들을 Dto로 셋팅해 놓는다.

> MessageService

@Service public class MessageService extends HttpCallService{ private Logger logger = LoggerFactory.getLogger(this.getClass()); private static final String MSG_SEND_SERVICE_URL = “https://kapi.kakao.com/v2/api/talk/memo/default/send”; private static final String SEND_SUCCESS_MSG = “메시지 전송에 성공했습니다.”; private static final String SEND_FAIL_MSG = “메시지 전송에 실패했습니다.”; private static final String SUCCESS_CODE = “0”; //kakao api에서 return해주는 success code 값 public boolean sendMessage(String accessToken, DefaultMessageDto msgDto) { JSONObject linkObj = new JSONObject(); linkObj.put(“web_url”, msgDto.getWebUrl()); linkObj.put(“mobile_web_url”, msgDto.getMobileUrl()); JSONObject templateObj = new JSONObject(); templateObj.put(“object_type”, msgDto.getObjType()); templateObj.put(“text”, msgDto.getText()); templateObj.put(“link”, linkObj); templateObj.put(“button_title”, msgDto.getBtnTitle()); HttpHeaders header = new HttpHeaders(); header.set(“Content-Type”, APP_TYPE_URL_ENCODED); header.set(“Authorization”, “Bearer ” + accessToken); MultiValueMap parameters = new LinkedMultiValueMap<>(); parameters.add(“template_object”, templateObj.toString()); HttpEntity messageRequestEntity = httpClientEntity(header, parameters); String resultCode = “”; ResponseEntity response = httpRequest(MSG_SEND_SERVICE_URL, HttpMethod.POST, messageRequestEntity); JSONObject jsonData = new JSONObject(response.getBody()); resultCode = jsonData.get(“result_code”).toString(); return successCheck(resultCode); } public boolean successCheck(String resultCode) { if(resultCode.equals(SUCCESS_CODE)) { logger.info(SEND_SUCCESS_MSG); return true; }else { logger.debug(SEND_FAIL_MSG); return false; } } }

HttpCallService를 상속받아 실제 Message 전송을 담당할 클래스이다. KAKAO 메시지 API에 연동하기 위해 발급받은 token값이 필요하다. token 값은 AuthService에서 static 값으로 셋팅해준다.

> CustomMessageService

@Service public class CustomMessageService { @Autowired MessageService messageService; public boolean sendMyMessage() { DefaultMessageDto myMsg = new DefaultMessageDto(); myMsg.setBtnTitle(“자세히보기”); myMsg.setMobileUrl(“”); myMsg.setObjType(“text”); myMsg.setWebUrl(“”); myMsg.setText(“메시지 테스트입니다.”); String accessToken = AuthService.authToken; return messageService.sendMessage(accessToken, myMsg); } }

실제로 보낼 메시지를 작성한 클래스이다.

> BaseController

@RestController public class BaseController { @Autowired AuthService authService; @Autowired CustomMessageService customMessageService; @GetMapping(“/”) public String serviceStart(String code) { if(authService.getKakaoAuthToken(code)) { customMessageService.sendMyMessage(); return “메시지 전송 성공”; }else { return “토큰발급 실패”; } } }

최초 카카오 로그인시 카카오 API에서 http://localhost:88로 reutrn해주는 code값을 받는 컨트롤러다. code값을 받은 후 토큰을 발급받아 바로 메시지를 전송할 것이다.

즉, 순서를 정리하자면,

1) web을 통해 카카오 API 인가코드를 받기위한 접근 및 로그인

2) 카카오 API에서 Return해주는 인가코드값 BaseController에서 수신 및 AuthService로 전달

3) 해당 코드값을 통해 AuthService에서 토큰 발급 및 static 값으로 token 셋팅

4) customMessageService에서 dto 셋팅과 static값인 token값을 MessageService로 전달

5) MessageService에서 KAKAO API에 메시지 요청

6) 실제 카카오 메시지 전송

순으로 진행된다.

STEP5. 메시지 전송해보기.

여러차례 설명하듯, 카카오 API를 이용하기 위해 로그인을 통해 인가 코드를 받고 인가코드를 통해 엑세스 토큰과 리프레시 토큰을 받을 수 있다. 자세한 내용은 아래 문서를 참고하면 될 것 같다.

REST API | Kakao Developers 문서

먼저 카카오 인가코드를 받고 엑세스 토큰을 받기위해 브라우저를 통해 해당 URL 에 접근해서 로그인을 해보자.

https://kauth.kakao.com/oauth/authorize?client_id=your_client_id&redirect_uri=http://localhost:88&response_type=code&scope=talk_message

참고로 client_id에 아까 확인한 client_id값을 입력해주면된다.

그러면 로그인 창으로 redirect 시킬 것이다.

로그인을 진행 하면 KAKAO에서 내가 RedirectUri로 설정한 http:/localhost:88 로 인가코드값을 던져준 후 호출하게 된다.

위의 코드와 똑같이 작성하면 정상적으로 메시지가 전송된 걸 확인할 수 있다.

정리

Java를 사용한 예시가 없었던 이유는 java로 HttpCall을 진행하기에 번거로우며, js로 이미 많은 예제가 있고 실제 공식 문서에서도 참고자료로 제공해주기 때문이다. 하지만 결국 거의 대부분의 API연동은 Http요청과 응답을 통해 진행된다. 따라서 Java에서도 RestTemplate을 이용하여 HttpRequest, Response를 처리할 수 있었으며 어렵지 않게 작업할 수 있었음을 보여준 것 같다.

Git source

asd9211/kakao_api_demo: java – kakao 메시지 api 데모 (github.com)

물론 위의 예제 코드는 급하게 하는 방식만 보여주느라 조금 지저분 할 수 있어 아래 실제로 본인이 실제로 자동 알람 메시지 프로젝트를 작업하고 있는 git을 올려놓고 글을 마무리하고자 한다.

끗!

asd9211/kkotalk_alarm: 카카오톡 알람 프로젝트 (github.com)

카카오톡 메시지 API(나에게 메시지 보내기) – CodePen

– 카카오톡 메시지 API는 피드, 목록, 위치, 커머스(상품 정보), 텍스트 등 다양한 형태의 메시지 템플릿을 지원합니다.

  • Source: codepen.io
  • Views: 1308
  • Publish date: 48 minute ago
  • Downloads: 29053
  • Likes: 7313
  • Dislikes: 4
  • Title Website: 카카오톡 메시지 API(나에게 메시지 보내기) – CodePen
  • Description Website: – 카카오톡 메시지 API는 피드, 목록, 위치, 커머스(상품 정보), 텍스트 등 다양한 형태의 메시지 템플릿을 지원합니다.

세부 정보를 보려면 여기를 클릭하십시오.

카카오 API로 코로나맵 만들기

  • Source: Youtube
  • Views: 91428
  • Date: 10 hours ago
  • Download: 5047
  • Likes: 8842
  • Dislikes: 7

[Python] 10분 만에 카카오톡 메시지 보내기 친구편 – 초보 개발자

import requests url = ‘https://kauth.kakao.com/oauth/token’ rest_api_key = ‘자신의 API 키’ redirect_uri = ‘https://example.com/oauth’ authorize_code = ‘받아온 authorize_code’ data = { ‘grant_type’:’authorization_code’, ‘client_id’:rest_api_key, ‘redirect_uri’:redirect_uri, ‘code’: authorize_code, } response = requests.post(url, data=data) tokens = response.json() print(tokens) # json 저장 import json with open(r”C:\Users\user\Desktop\PythonWorkspace\kakao_test\kakao_code.json”,”w”) as fp: json.dump(tokens, fp)

https://kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code&scope=talk_message,friends

4. 위 슬라이드 쇼 3번째 URl를 그대로 입력 ( https://example.com/oauth ->그대로 복사 붙여 넣기!)

31 thg 12, 2020 — 생성된 애플리케이션을 클릭해 주세요. 2. 앱 키 저장! – ☆. 앱 키. REST API 키 …

  • Source: novice-engineers.tistory.com
  • Views: 49329
  • Publish date: 53 minute ago
  • Downloads: 74284
  • Likes: 7100
  • Dislikes: 3
  • Title Website: [Python] 10분 만에 카카오톡 메시지 보내기 친구편 – 초보 개발자
  • Description Website: 31 thg 12, 2020 — 생성된 애플리케이션을 클릭해 주세요. 2. 앱 키 저장! – ☆. 앱 키. REST API 키 …

세부 정보를 보려면 여기를 클릭하십시오.

파이썬 생활밀착형 프로젝트 – 2.2.2 카카오톡 메시지 API사용권한 받기(인증코드와 사용자코드 발급)

  • Source: Youtube
  • Views: 97934
  • Date: 9 minute ago
  • Download: 67102
  • Likes: 8088
  • Dislikes: 6

파이썬 & 빅데이터

지금부터는 파이썬을 활용한 친구에게 카카오톡 메시지 보내기를 해보겠습니다.

이해를 위해 메시지 보내기 1편을 꼭 해보시고 진행해 주세요!

www.novice-engineers.tistory.com/9?category=908185

친구에게 카카오톡을 보내기 위해서는 조금 불편한 절차가 필요합니다.

우선 kakao developers에 가입된 친구(계정)가 있어야 합니다.

저 같은 경우는 부계정을 생성하여 테스트를 진행했습니다.

집에 공기계(안 쓰시는) 핸드폰이 있으시다면 카카오톡 부계정을 생성하실 수 있습니다.

=> 궁금하신 분은 댓글에 남겨주세요! 알려드리겠습니다.

부계정이나 kakao developers에 가입된 친구(계정)가 있다고 생각하고 진행하겠습니다.

1. 애플리케이션 생성

이전 다음 012

위 슬라이드 쇼를 참고해 주세요.

1. 로그인 후 상단에서 내 애플리케이션으로 이동해 주세요.

2. 애플리케이션 추가하기 클릭.

3. 앱 이름, 사업자명을 입력 후 저장을 눌러주세요.

4. 생성된 애플리케이션을 클릭해 주세요.

2. 앱 키 저장! – ★

앱 키

REST API 키를 메모장에 복사해 주세요. 중요합니다!!!

3. 활성화 설정

이전 다음 012

위 슬라이드 쇼를 참고해 주세요.

1. 좌측 메뉴에서 카카오 로그인 클릭

2. 활성화 설정에서 OFF를 클릭하여 ON으로 설정

3. 스크롤 내린 후 Redirect URI를 클릭

4. 위 슬라이드 쇼 3번째 URl를 그대로 입력 ( https://example.com/oauth ->그대로 복사 붙여 넣기!)

[나중에 바꿔도 상관없으나 처음 테스트는 반드시 일치시켜주세요!]

4. 팀 관리

이전 다음 01

위 슬라이드 쇼를 참고해 주세요.

1. 좌측 메뉴에서 팀 관리 클릭

2. 팀원 초대 클릭

3. 부계정 또는 kakao developers에 가입된 친구(계정)의 카카오 계정(이메일) 입력

4. EDITOR 클릭

5. 초대 클릭

5.동의항목

이전 다음 01 동의항목

위 슬라이드 쇼를 참고해 주세요.

1. 카카오 로그인 -> 동의항목 클릭

2. 프로필 정보, 카카오 서비스내 친구 목록 2개를 설정 클릭 후 동의 하기

3. 스크롤 내린 후 카카오톡 메시지 전송 설정 클릭 후 동의 하기

[ 친구 목록을 받아오기 위해서 중요한 설정입니다.]

6. 인증 코드 받기

https://kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code&scope=talk_message,friends

이전 1편에서는 다르게 &scope=talk_message,friends를 code뒤에 붙여 주셔야 됩니다!

이 부분이 없으면 친구 목록을 받아오지 못합니다. 이 코드 때문에 2시간을 검색했습니다 ㅠㅠ…

이후에는 1편과 동일한 방식으로 진행하시고 코드를 저장해 주세요.

7. 사용자 토큰 받아오기

import requests url = ‘https://kauth.kakao.com/oauth/token’ rest_api_key = ‘자신의 API 키’ redirect_uri = ‘https://example.com/oauth’ authorize_code = ‘받아온 authorize_code’ data = { ‘grant_type’:’authorization_code’, ‘client_id’:rest_api_key, ‘redirect_uri’:redirect_uri, ‘code’: authorize_code, } response = requests.post(url, data=data) tokens = response.json() print(tokens) # json 저장 import json with open(r”C:\Users\user\Desktop\PythonWorkspace\kakao_test\kakao_code.json”,”w”) as fp: json.dump(tokens, fp)

코드는 1편과 동일하고 authorize_code 변수만 6번에서 받아온 코드로 바꿔주세요!

8. scope 정보

scope 정보

실행 후 콘솔에서 scope에 friends가 있는지 반드시 확인해 주세요!!!

여기까지 실행하셔서 토큰을 받아 오시면 성공입니다!

주제에 대한 관련 정보 카카오 톡 api

Bing에서 카카오 톡 api 주제에 대한 최신 정보를 볼 수 있습니다.


주제에 대한 기사 보기를 마쳤습니다 카카오 톡 api. 이 기사가 유용했다면 공유하십시오. 매우 감사합니다. 사람들이 이 주제와 관련하여 자주 검색하는 키워드: 카카오 톡 api 카카오톡 오픈 api, 카카오톡 api 사용법, 카카오톡 api 메시지 전송, 카카오톡 api 챗봇, 카카오톡 api 예제, 카카오톡 api 메시지 전송 python, 카카오톡 api 파이썬, 카카오톡 api 단톡방

Leave a Comment