C# 번역 파파고 API 사용하기 (영어를 한글로, 한글을 영어로 번역)
구글 번역기 API는 연동을 다 했으니까
이제 파파고를 연동할 차례!

네이버 계정이 있다는 가정 하에
네이버 디벨로퍼(네이버 개발자센터)에 들어가서 로그인을 한다.

그 다음 Application에서 애플리케이션 등록을 클릭한다.

애플리케이션 이름은 아무거나 입력하고,
사용 API에서 Papago 번역을 선택한다.

환경은 앱으로 만드는게 아니므로 WEB 설정을 선택 한 다음
웹 서비스 URL은 가지고 있는 도메인으로 입력하였는데
네아로를 사용하며 이것저것 테스트해봤을 때 실제 사용되고 있는 도메인이면
아무거나 사용해도 문제는 없었으므로
도메인이 없는 경우 티스토리 혹은 네이버 도메인으로 해도 될 듯.

모든 것이 입력이 다 되었으면 [등록하기] 클릭

내 애플리케이션에서 방금 등록한 것을 클릭하면
Client ID와 Client Secret이 있다.

API 가이드와 기본정보를 보면 POST로 요청 URL에 요청하고(Requset),
이때, Content-Type은 application/x-www-form-urlencoded이고,
Character set은 UTF-8(Encoding.UTF8)이며,
응답받을 때(출력 포맷, Response)는 JSON 형식으로 값을 받는 것을 알 수 있다.

JSON 출력 포맷은 위와 같다.
이제 코드로 작성하여 사용해보자!
HTTP POST에 대한 것은
C# HTTP POST 요청 및 응답 (ContentType: application/x-www-form-urlencoded)
private void HTTPPost() { string sParam = "sParam1=value1&sParam2=value2"; string sUrl = "http://abc/web"; // 서버 접속 WebRequest webRequest = WebRequest.Create(sUrl); webRequest.Method = "POST"; /..
jasmintime.com
이것을 참고하고,
json 파싱에 대한 것은
C# JSON 파싱하기
비주얼스튜디오에 Newtonsoft.Json을 설치했다는 가정하에 c#에서 Json 파싱하는 법을 작성하도록 하겠습니다. 아직 설치 하지 못한 분은 아래 글에서 설치하기를 따라하시면 됩니다. 2018/10/26 - [프로그래밍/C#..
jasmintime.com
이것을 참고한다.
private void Papago()
{
// 요청 URL
string sUrl = "https://openapi.naver.com/v1/papago/n2mt";
// 파라미터에 값넣기 (파파고 NMT API 가이드에서 -d 부분이 파라미터이다)
string sParam = string.Format("source={0}&target={1}&text={2}", comboBox1.Text, comboBox2.Text, txtSendText.Text);
// 파라미터를 Character Set에 맞게 변경
byte[] bytearry = Encoding.UTF8.GetBytes(sParam);
// 서버에 요청
WebRequest webRequest = WebRequest.Create(sUrl);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
// 헤더 추가하기 (파파고 NMT API 가이드에서 -h 부분이 헤더이다)
webRequest.Headers.Add("X-Naver-Client-Id", "네이버 클라이언트 아이디");
webRequest.Headers.Add("X-Naver-Client-Secret", "네이버 클라이언트 시크릿");
// 요청 데이터 길이
webRequest.ContentLength = bytearry.Length;
Stream stream = webRequest.GetRequestStream();
stream.Write(bytearry, 0, bytearry.Length);
stream.Close();
// 응답 데이터 가져오기(출력포맷)
WebResponse webResponse = webRequest.GetResponse();
stream = webResponse.GetResponseStream();
StreamReader streamReader = new StreamReader(stream);
string sReturn = streamReader.ReadToEnd();
streamReader.Close();
stream.Close();
webResponse.Close();
JObject jObject = JObject.Parse(sReturn);
// JSON 출력포맷에서 필요한 부분(번역된 문장)만 가져오기
txtToText.Text = jObject["message"]["result"]["translatedText"].ToString();
}
결과적으로 코드로 표현하면 위와 같다.

한글을 영어로 번역할 수 있다.
source와 target을 서로 바꾸면 영어를 한글로 번역할 수 있다.
API 레퍼런스에 대한 자세한 내용은 여기서