2017/11/21 - [C#.NET/C#] - 카카오 쳇봇 만들기 - 1 (플러스친구 만들기)
2017/11/24 - [C#.NET/C#] - 카카오 쳇봇 만들기 - 2 (C# 서버 만들기)
이전 시간에 이어서 응답 가능한 쳇봇을 구성해보겠습니다.
응답가능한 쳇봇은 아래 처럼 구성이 되어야 한다고 나와있습니다.
https://github.com/plusfriend/auto_reply#52-메시지-수신-및-자동응답-api
우선 내 서버로 들어온 미디어 데이터는 내 서버로 바로 오는게 아니라 카카오 서버에 저장되어 넘어옵니다.
하지만 내 서버에서 보낸건 내 서버에만 저장됩니다.
위 그림에서 보듯이 사용자가 내 서버로 메세지나 미디어 정보를 보내면 위 처럼 데이터가 담겨서 넘어옵니다.
내 서버로 온 미디어 정보는 카카오 서버에 저장되어 넘어오므로 content url 에 카카오 서버 링크가 보여집니다.
위 정보를 토대로 Post 메서드를 구성해 보면..
주소가 message 로 끝나야하고 POST 메서드 이므로 아래 처럼 기본 구조를 갖습니다.
[Route("message")]
public dynamic GetKakao_message([FromBody]dynamic value)
{
return null;
}
json 형태로 넘겨야하기 때문에 그냥 Dynamic 을 리턴 타입으로 했습니다.
이제 value 에 위에서 제시한 user_key, type, content 값이 넘어오게 됩니다.
이제 이정보를 value 에서 꺼내야합니다.
쉽게 꺼내기 위해서 프로젝트에 Nuget 패키지 관리자 를 통해
Newtonsoft.Json 을 설치합니다.
using Newtonsoft.Json; 문을 추가한 후
아래처럼 꺼내올 구조를 정의하고
{
public string user_key { get; set; }
public string type { get; set; }
public string content { get; set; }
}
아래 처럼 코딩하게되면 KakaoModel 에 데이터가 담기게 됩니다.
[Route("message")]
public dynamic GetKakao_message([FromBody]dynamic value)
{
string valueString = JsonConvert.SerializeObject(value);
KakaoModel postmodel = JsonConvert.DeserializeObject<KakaoModel>(valueString);
string result = postmodel.content;
return result;
}
이제 사용자가 내 서버로 어떤 정보를 보내는지 알아내는데 까지 완료되었습니다.
이제 응답을 보내야합니다.
응답은 message, keyboard 형태로 응답할수 있습니다.
keyboard 는 버튼 형태로 결과를 주는 것으로 이전 포스팅에서 설명이 되었습니다.
여기서는 단순히 메아리 치는 즉 사용자가 보내는 메세지를 그대로 보내보도록 합니다.
[Route("message")]
public dynamic GetKakao_message([FromBody]dynamic value)
{
string valueString = JsonConvert.SerializeObject(value);
KakaoModel postmodel = JsonConvert.DeserializeObject<KakaoModel>(valueString);
var result = new { message = new { text = postmodel.content }, keyboard = new { type = "text" } };
return result;
}
message 의 text 항목에 사용자가 보낸 메세지를 그대로 보냈습니다.
더 설명할건 없는것 같네요;
테스트 하기위해 폴더로 게시하고 IIS 올린 후
내 플러스친구와 대화를 나눠보면 아래와 같이 메아리? 치게됩니다.
(처음에 선택1,2,3 버튼이 나와 선택1을 선택하고 그 이후 메세지 보냄.)
'C# > Winform' 카테고리의 다른 글
(C#) Double/float 연산 결과가 이상할 때 (부동소수점 연산) (0) | 2017.12.22 |
---|---|
Azure 무료계정 신청하기 (0) | 2017.11.27 |
카카오 쳇봇 만들기 - 2 (C# 서버 만들기) (0) | 2017.11.27 |
카카오 쳇봇 만들기 - 1 (플러스친구 만들기) (0) | 2017.11.27 |
Microsoft Office 2010에서 사용할 수 있도록 MODI 설치 (0) | 2017.11.22 |