Papago 번역 API 는 네이버에서 제공되는 번역 API로 네이버에서 제공되는 API중 사용면에서 본다면 정말 쉬운편에 속하는 API중 하나다. 해당 API는 눈팅만 하다가 이번에 처음 써보는 API인데 한국 토박이인 나에겐 왠지 어울리지 않는 API이기도 하지만 그래도 공유를위해 포스팅을 하였다. 

 
Neural Machine Translation - INTRO
Neural Machine Translation - INTRO
developers.naver.com/products/papago/nmt/nmt.md

 

Papago 번역 API를 사용하기 위해선 네이버 애플리케이션이 등록이 되어있어야 하며 등록 후에는 아래와 같이 사용 API 에서 Papago 번역을 추가해주어야한다. 

 

Papago 번역을 추가한다음 아래와 같이 `비로그인 오픈 API 서비스 환경` 에서 WEB 설정을 추가해준다.

 

마지막으로 웹 서비스 URL에 API를 호출할 도메인을 입력해 주고 수정을 누르면 사용이 가능하다. 참고로 도메인은 메인 도메인만 입력해도 된다. 

 

이제 준비과정은 끝났고 Papago 번역 API를 호출하여 사용하는 예제 소스는 아래와 같다. 

 

Papago 번역 API 사용예제 소스 - PHP
<?php  # https://developers.naver.com/docs/papago/papago-nmt-api-reference.md  참고
	/* @: source , target 참고 :@
		ko	한국어
		en	영어
		ja	일본어
		zh-CN	중국어 간체
		zh-TW	중국어 번체
		vi	베트남어
		id	인도네시아어
		th	태국어
		de	독일어
		ru	러시아어
		es	스페인어
		it	이탈리아어
		fr	프랑스어
	*/

	// 요청 데이터
	$postfields['source'] = 'ko';
	$postfields['target'] = 'en';
	$postfields['text'] = '이건 얼마입니까?';

	$response = papago($postfields);

	if($response['rst'] == 'success'){
		echo '<pre>';
		print_r(json_decode($response['data'],true));
		echo '</pre>';
	}
	else{
		echo $response['msg'];
	}


	function papago($postfields = array()){

		$clientId = ''; // Client Id 입력
		$clientSecret = ''; // Client Secret 입력
		$headers = array();
		$url = 'https://openapi.naver.com/v1/papago/n2mt';
		
		$headers[] = 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8';
		$headers[] = 'X-Naver-Client-Id: '.$clientId;
		$headers[] = 'X-Naver-Client-Secret: '.$clientSecret;

		$ch = curl_init(); 
		curl_setopt($ch, CURLOPT_URL, $url); 
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
		curl_setopt($ch, CURLOPT_POST, 1); 
		curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postfields)); 
		if( count($headers) > 0){ 
			curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
		}
		$data = curl_exec($ch); 

		$response = array();
		
		// 통신 실패 처리
		if (curl_error($ch)){ 
			$response = array('rst'=>'fail','msg'=>'CURL Error('.curl_errno( $ch ).') '.curl_error($ch));
		} 

		// 통신에 대한 성공이며, 실제 데이터에 대한 성공은 별도 처리 필요
		else{
			$response = array('rst'=>'success','data'=>$data);
		}
		curl_close($ch); 		

		return $response;
	}

 

결과
Array
(
    [message] => Array
        (
            [result] => Array
                (
                    [srcLangType] => ko
                    [tarLangType] => en
                    [translatedText] => How much is this?
                    [engineType] => N2MT
                )

            [@type] => response
            [@service] => naverservice.nmt.proxy
            [@version] => 1.0.0
        )

)

 

결과를 보면 알겠지만 정말 심플하게 주기 때문에 여러 방면에서 활용하여 사용할 수 있을 듯 하다. 그럼 다음편에서는 이와 비슷한 API인 Papago 언어감지 API에 대해 알아보도록 하자