Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 코드이그나이터
- upbit
- 20.04
- ubuntu
- 제주도
- TiL
- 프레임워크
- 회고
- Laravel
- C
- 맛집
- codeigniter
- MySQL
- Selenium
- 셀레니움
- 옵티머스 g
- 라라벨
- FMS
- 업비트
- 라즈비안
- 옵G
- 옵티머스g
- 우분투
- 옵지
- 라즈베리파이
- Ubuntu 20.04
- php
- Raspberry Pi
- 맥
- 우분투 20.04
Archives
- Today
- Total
평범한 이야기들
[PHP] 파파고(Papago) 번역 API 통신하기 본문
728x90
네이버에서 제공해주는 무료 번역 서비스인 파파고(Papago)와 통신하는 방법을 정리합니다.
파파고는 유료 서비스와 무료 서비스가 있는데 확인해보니깐 전송 시 헤더의 값만 조금 다를 뿐이지 전반적으로 같으며 매우 쉽고 잘 설명되어있어서 누구나 연동하기 쉽습니다.
파파고 API 문서 주소입니다.
파파고 API와 통신하는 클래스 생성
<?php
/**
* 2021.02.23
* 네이버 파파고 API를 이용해 번역 서비스 이용
* @author sample
*/
class Papago {
private $papagoUrl;
private $clientId;
private $clientSecret;
public function __construct() {
// 테스트 계정
$this->clientId = '발급받은ClientKey';
$this->clientSecret = '발급받은SecretKey';
// 일반버전 (유료버전은 주소가 다르다.)
$this->papagoUrl = 'https://openapi.naver.com/v1/papago/n2mt';
}
/**
* 외부에서 접근 가능한 번역 서비스 메소드
*
* @param string $text
* @param string $source
* @param string $target
* @return array
*/
public function translate($text, $source = "en", $target="ko" ) {
$postData = "source={$source}&target={$target}&text=".urlencode($text);
$responseData = $this->call($postData);
return $responseData;
}
/**
* 네이버 파파고 서비스와 통신하는 메서드
* @param string $postData
* @return array
*/
private function call($postData) {
// 일반버전 (유료버전은 키의 이름이 다르다.)
$headers = array (
"X-Naver-Client-Id: ".$this->clientId,
"X-Naver-Client-Secret: ".$this->clientSecret,
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->papagoUrl);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// 헤더와 바디를 구분해준다.
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
curl_close($ch);
// 결과값을 코드와 함께 배열로 만들어 반환한다.
$responseData["code"] = $status_code;
$responseData["data"] = json_decode($body);
return $responseData;
}
}
728x90
사용방법
<?php
include $_SERVER["DOCUMENT_ROOT"] . "/Papago.class.php";
// 객체생성
$papago = new Papago();
// 테스트 문구
$sample_string = "Welcome to my blog.";
// 번역서비스 실행
$sample_translate = $papago->translate(htmlspecialchars_decode($sample_string), "en", "ko");
// 출력
print_r($sample_translate);
위와 같이 실행하게 되면 아래와 같이 결과를 받을 수 있다.
아주 쉽고 간단하게 파파고 서비스를 사용할 수 있습니다.
728x90
Comments