1.문서에서 카카오톡 메시지 , 메시지 API 검수 신청 방법 을 반드시 확인하세요.
- API 검수 신청을 하기 전의 테스트 단계에서 서비스에 도입하여 충분히 테스트 하신 후, 서비스 오픈 혹은 배포 전에 검수 신청하기해주시기 바랍니다.
- 테스트 과정에서 발생하는 문제들에대해서는 [faq] 친구 목록 api, 메시지 전송 api를 연동하는 과정에서 자주 겪는 에러 를 참고해보시기 바랍니다.
2.검수 방법
반드시 신청하시는 서비스에 API나 SDK가 연동되어 정상적으로 호출이 된 상태만 검수받을 수 있습니다.
- 해당 앱의 ‘[내 애플리케이션 > 설정 > 일반 > 비즈 앱 정보 > 사업자 정보 등록]’ 에서 비즈앱 신청을 해주세요.
- 신청에 사용한 사업자등록증 사본을 카카오 계정(@kakao)에 메시지로 전달해주세요.
넵 보냈습니다. - OWNER의 개발자 계정 (email), 앱 이름을 알려주세요.
- OWNER의 개발자 계정은 ‘내 애플리케이션 > 설정 > 팀 관리’ 에서 확인하세요
dhpi@tmck.co.kr
- 앱에서의 API를 활용하는 이유/방식을 알려주세요.
- 친구 api를 함께 사용하실 계획이라면 알려주시기 바랍니다.
- 친구 API 를 함께 사용합니다.
- 새로운 게시글이 발생되면 친구 목록을 가져와 담당자에게 카톡으로 알림을 줍니다.
- 메시지 전송 API가 적용된 서비스를 저희가 직접 확인하기 위해, '로그인을 하는 시점부터 해당 서비스까지 이동하는 순서’를 상세히 알려주세요.
-사용자가 카카오 로그인 api를 통해 로그인
# Code 값 받기
def Code():
global authorize_code
ChromeSet.ChromeDriver()
ChromeSet.driver.get('https://kauth.kakao.com/oauth/authorize?client_id=2c931f172c5b51****&redirect_uri=http://monitoring.tmck.co.kr/&response_type=code&scope=talk_message,friends')
time.sleep(3)
input("입력 : ")
# 로그인
user_id = '****"
user_passwd = '****'
ChromeSet.driver.find_element_by_id('id_email_2').send_keys(user_id)
ChromeSet.driver.find_element_by_id('id_password_3').send_keys(user_passwd)
ChromeSet.driver.find_element_by_xpath('//*[@id="login-form"]/fieldset/div[8]/button[1]').click()
time.sleep(3)
temp_url = ChromeSet.driver.current_url
CodeIDX1 = temp_url.index("=")
authorize_code = temp_url[CodeIDX1+1:]
ChromeSet.driver.close()
def API():
global tokens
url = 'https://kauth.kakao.com/oauth/token'
rest_api_key = '****'
redirect_uri = '****'
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()['access_token']
# json 저장
with open(r"C:\\rawdata\\kakao_code.json","w") as fp:
json.dump(tokens, fp)
-친구 api 통해 친구목록에서 uuid를 가져옴
global api_login_time
check_time = datetime.now()
if int(datetime.strftime(datetime.now(), "%H")) == 13:
pass
else:
if api_login_time < check_time - timedelta(hours=5):
KakaoAPISet.Code()
KakaoAPISet.API()
api_login_time = check_time
else:
pass
with open(r"C:\\rawdata\\kakao_code.json","r") as fp:
tokens = json.load(fp)
friend_url = "https://kapi.kakao.com/v1/api/talk/friends"
headers = {"Authorization": "Bearer " + tokens}
result = json.loads(requests.get(friend_url, headers=headers).text)
-가져온 uuid로 메시지 api 통해 친구에게 원하는 메시지를 보냄
b = datetime.now().strftime("%Y/%m/%d")
weekday = datetime.strptime(b, "%Y/%m/%d")
t = ['월', '화', '수', '목', '금', '토', '일']
now_hour = datetime.strftime(datetime.now(), "%H")
if t[weekday.weekday()] == '토' or t[weekday.weekday()] == '일':
if int(now_hour) == 13:
pass
elif int(now_hour) >13 and int(now_hour) < 20:
# 홍길동
friend_id_list.append('****')
elif int(now_hour) > 7 and int(now_hour) <13:
# 김길동
friend_id_list.append('****')
elif t[weekday.weekday()] == '월' or t[weekday.weekday()] == '화' or t[weekday.weekday()] == '수':
if int(now_hour) == 13:
pass
elif int(now_hour) >13 and int(now_hour) < 20:
# 이길동
friend_id_list.append('****')
elif t[weekday.weekday()] == '목' or t[weekday.weekday()] == '금':
if int(now_hour) == 13:
pass
elif int(now_hour) > 7 and int(now_hour) < 13:
# 최길동
friend_id_list.append('****')
else:
# 조길동
friend_id_list.append('****')
for ID in range(len(friend_id_list)):
send_url = "https://kapi.kakao.com/v1/api/talk/friends/message/default/send"
data = {
'receiver_uuids': '["{}"]'.format(friend_id_list[ID]),
"template_object": json.dumps({
"object_type": "text",
"text": "데이터가 발생했습니다. \n 프로그램을 통해 데이터를 확인해주세요.",
"link": {
"web_url": "www.daum.net",
"web_url": "www.naver.com"
},
"button_title": "바로 확인"
})
}
response = requests.post(send_url, headers=headers, data=data)
response.status_code
print(response)
- 테스트가 완료되어 서비스에 적용된(될) '실제 동작 화면 영상 혹은 캡쳐’를 첨부해주세요.
3.검수를 마친 후
검수를 마치면 "내 애플리케이션 > 설정 > 사용자 관리 > 동의항목 > 설정"에서 “카카오톡 메시지 전송” 접근권한 관리항목을 설정할 수 있게 됩니다.