오늘은 파파고 api를 사용해 볼 겁니다!
파파고에 대한 자세한 설명은 아래에서 확인 가능합니다!
https://developers.naver.com/docs/papago/
먼저 파파고 api 를 사용하기 위해선
네이버 아이디로 로그인 후
papago 를 선택합니다.
그러면 다음과 같은 화면이 나오는데
오픈 API 이용 신청을 클릭합니다.
이제 어플리케이션 등록을 하면 됩니다!
어플리케이션 등록을 해야 API 를 사용할 때
필요한 Key 를 받을 수 있습니다.
어플리케이션 이름은 본인이 원하는 이름으로 설정하면 되고
사용 API 에서 저희는 오늘 언어 감지와 번역을 할 것이기 때문에
위와 같이 두가지를 선택합니다.
그 후 개발환경을 선택합니다.
해당하는 서비스 환경을 선택하면 됩니다!
등록을 마친 후 위와 같은 화면이 보인다면
무사히 등록 작업이 끝난 것입니다.
그리고 파파고의 api를 사용하기 위해서
package 하나를 추가합니다.
dependencies:
flutter:
sdk: flutter
http: ^0.13.4
바로 http 패키지 입니다.
바로 import 해줍니다!
import 'package:http/http.dart' as http;
Future<void> getLanguage_papago() async {
String _client_id = "등록 후 받은 아이디";
String _client_secret = "등록 후 받은 시크릿 코드";
String _content_type = "application/x-www-form-urlencoded; charset=UTF-8";
String _url = "https://openapi.naver.com/v1/papago/detectLangs";
http.Response lan = await http.post(Uri.parse(_url), headers: {
// 'query': text,
'Content-Type': _content_type,
'X-Naver-Client-Id': _client_id,
'X-Naver-Client-Secret': _client_secret
}, body: {
'query': "번역할 내용"
});
if (lan.statusCode == 200) {
var dataJson = jsonDecode(lan.body);
//만약 성공적으로 언어를 받아왔다면 language 변수에 언어가 저장됩니다. (ex: eu, ko, etc..)
var language = dataJson['langCode'];
} else {
print(lan.statusCode);
}
}
그럼 이제 입력한 텍스트가 어떤 언어인지 판별하는 함수 구현은
끝 났 다!
그럼 이제 파파고 번역 기능을 구현해보자!
import 'package:http/http.dart' as http;
Future<void> getTranslation_papago() async {
String _client_id = "본인의 api Client Id";
String _client_secret = "본인의 api Client Secret";
String _content_type = "application/x-www-form-urlencoded; charset=UTF-8";
String _url = "https://openapi.naver.com/v1/papago/n2mt";
await getLanguage_papago();
http.Response trans = await http.post(
Uri.parse(_url),
headers: {
'Content-Type': _content_type,
'X-Naver-Client-Id': _client_id,
'X-Naver-Client-Secret': _client_secret
},
body: {
'source': language,//위에서 언어 판별 함수에서 사용한 language 변수
'target': "ko",//원하는 언어를 선택할 수 있다.
'text': "번역할 내용",
},
);
if (trans.statusCode == 200) {
var dataJson = jsonDecode(trans.body);
var result_papago = dataJson['message']['result']['translatedText'];
} else {
print(trans.statusCode);
}
}
위의 메소드를 사용하면
변수 result_papago 에 번역된 텍스트를 저장할 수 있다.
{
"message": {
"@type": "response",
"@service": "naverservice.nmt.proxy",
"@version": "1.0.0",
"result": {
"srcLangType":"ko",
"tarLangType":"en",
"translatedText": "tea"
}
}
}
http 통신으로 전송받은 데이터는 위와 같은 형식으로 리턴됩니다!
우리가 원하는 translatedText를 접근하기 위해선
dataJson['message']['result']['translatedText'] 의 형태로 접근해야 합니다!
그 이후의 응용은 여러분께 맡깁니다.
아직 http에 대한 공부가 더 필요하다는 생각이
공부할 수록 드는 것 같습니다.
파파고 번역 api 무료 사용은
하루 10000 건으로 제한됩니다!
파파고 api 의 장점으로는 텍스트를
입력한 형식 그대로 리턴한다는 점입니다.
위의 텍스트를 번역했을 때
줄 바꿈이 모두 그대로 적용되어서
번역 되어지는 것을 확인할 수 있습니다!
'Flutter' 카테고리의 다른 글
[Flutter][Kakao API] Kakao API 를 활용해 번역 기능 구현! (0) | 2021.12.22 |
---|---|
[Flutter][Google Cloud Translation] cloud translation api 를 활용해 번역 기능 구현하기! (0) | 2021.12.22 |
[Flutter][ML Vision] ML Vision으로 사진에서 글자 추출하기 (0) | 2021.12.21 |
댓글