.net c#에서 카톡 오픈 apirest api로 나에게 메시지 보내기 [예제 포함]
https://luckygg.tistory.com/309
카카오톡 오픈 API / REST API란?
지금까지 다른 포스팅에서 네이버 오픈 API, 공공데이터포털 오픈 API를 사용하여 원하는 데이터를 조회하는 예제 코드를 다뤄봤습니다. 그런데 이러한 오픈 API를 카카오톡도 제공하고 있습니다.
카카오 로그인이라든가 메시지 보내기, 지도 위치, 카카오 내비 등 일반적인 소셜통합 API 뿐만 아니라 비지니스 API 및 인공지능 API까지도 제공하고 있습니다.
카카오톡 오픈 API 제공 서비스 목록
이번 포스팅에서는 카카오톡 오픈 API 중 메시지 서비스를 사용하여, 나에게 메시지 보내기 동작을 확인해 보겠습니다.
준비 단계
1. 카카오톡 오픈 API 서비스 신청하기
더보기
2. 애플리케이션 설정하기
더보기
따라 하기
1. C# 프로젝트 설정
더보기
2. 카카오톡 로그인/로그아웃 구현하기
더보기
3. 나에게 기본 메시지 / 사용자 정의 메시지(템플릿) 전송하기
닫기
기본 메시지와 사용자 정의 메시지를 전송하면 아래와 같이 메시지가 보내집니다. 사용자 정의 메시지는 애플리케이션 설정에서 메시지 템플릿 만들기에서 설정한 메시지가 전송됩니다.
텍스트 타입의 기본 메시지 전송 결과
사용자 정의 메시지 전송 결과
메시지 보내기에 관한 개발 문서는 아래 링크에서 확인할 수 있습니다.
developers.kakao.com/docs/latest/ko/message/rest-api
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
이제 메시지 보내기도 구현해 보겠습니다. 우선 UI를 아래와 같이 구성합니다.
메시지 전송 관련 UI 컨트롤 추가
전송 버튼을 클릭하면 선택된 라디오 버튼에 따라 메시지를 전송하게 됩니다.
private void buttonSendMessage_Click(object sender, EventArgs e)
{
if (radioButtonCustom.Checked == true) //사용자 정의 메시지 보내기
{
sendMessageToMyself(textBoxMessage.Text);
textBoxMessage.Text = "";
}
else //템플릿 메시지 보내기
sendTemplateMessageToMyself();
}
그럼 나에게 기본 메시지 보내기부터 상세하게 보겠습니다. 본문의 기본 메시지는 텍스트 타입으로 보냅니다. 텍스트 타입의 요청은 아래와 같습니다.
텍스트 타입 보내기
JSON 오브젝트를 아래와 같이 요청하면 사용자 정의 메시지가 전송됩니다.
나에게 기본 메시지 보내기 요청과 응답
기본 메시지를 보내는 코드는 sendMessagetoMyself()에 구현되어 있습니다.
private void sendMessageToMyself(string message)
{
//JSON 구성
JObject send = new JObject();
JObject link = new JObject();
send.Add("object_type", "text");
send.Add("text", message);
link.Add("web_url", "https://developers.kakao.com");
link.Add("mobile_web_url", "https://developers.kakao.com");
send.Add("link", link);
send.Add("button_title", "링크 이동");
//요청
var client = new RestClient(DefineKakao.HOST_API_URL);
var request = new RestRequest("/v2/api/talk/memo/default/send", Method.POST);
request.AddHeader("Authorization", "bearer " + DefineKakao.ACCESS_TOKEN);
request.AddParameter("template_object", send);
if (client.Execute(request).IsSuccessful)
MessageBox.Show("메시지 전송 성공!");
else
MessageBox.Show("메시지 전송 실패!");
}
사용자 정의 메시지 보내기는 더욱 심플합니다.
사용자 정의 메시지 보내기
아래와 같이 template_id만 구성하여 요청하면, 미리 만들어 놓은 템플릿 메시지가 전송됩니다.
사용자 정의 메시지 보내기 요청과 응답
사용자 정의 메시지를 보내는 코드는 sendTemplateMessageToMyself()에 구현되어 있습니다.
public void sendTemplateMessageToMyself()
{
var client = new RestClient(DefineKakao.HOST_API_URL);
var request = new RestRequest("/v2/api/talk/memo/send", Method.POST);
request.AddHeader("Authorization", "bearer " + DefineKakao.ACCESS_TOKEN);
request.AddParameter("template_id", DefineKakao.TEMPLATE_ID);
if (client.Execute(request).IsSuccessful)
MessageBox.Show("메시지 보내기 성공");
else
MessageBox.Show("메시지 보내기 실패");
}
결론
본문에서 소개한 나에게 메시지 보내기는 카카오 오픈 API의 아주 일부분일 뿐입니다. 이 외에도 카카오톡 소셜, 스토리, 채널, 싱크, 페이 등 정말 다양한 분야의 API를 제공하고 있습니다. 하나라도 할 줄만 안다면, 다른 것도 개발하는데 전혀 문제가 없으리라 생각합니다.
본문의 예제 코드는 아래 첨부된 파일을 참고하세요.