[플러터]파파고 NMT API 사용법

임효진·2024년 1월 8일
0

Flutter

목록 보기
1/20

파파고 번역 API 사용법에 대해 정리

1. API 키 발급:

네이버 클라우드 플랫폼에 로그인하고, Papago NMT API의 사용을 신청하여 Client ID와 Client Secret을 발급.

2. Flutter 프로젝트 설정:

  • 통신을 위하여 http 패키지 설정.
  • pubspec.yaml 파일에 다음을 추가:
    dart dependencies: http: ^0.13.3

3. HTTP 요청 함수 생성:

Papago API를 호출하는 함수를 생성. 아래는 translateText라는 함수의 예시:

import 'dart:convert';
import 'package:http/http.dart' as http;

Future<String> translateText(String text, String sourceLang, String targetLang) async {
  final String clientId = "YOUR_NAVER_CLIENT_ID"; // 발급받은 Client ID
  final String clientSecret = "YOUR_NAVER_CLIENT_SECRET"; // 발급받은 Client Secret

  final response = await http.post(
    Uri.parse("https://openapi.naver.com/v1/papago/n2mt"),
    headers: {
      "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
      "X-Naver-Client-Id": clientId,
      "X-Naver-Client-Secret": clientSecret,
    },
    body: {
      "source": sourceLang,
      "target": targetLang,
      "text": text,
    },
  );

  if (response.statusCode == 200) {
    final jsonResponse = json.decode(response.body);
    return jsonResponse['message']['result']['translatedText'];
  } else {
    throw Exception('Failed to load translation');
  }
}

이 함수는 원본 텍스트와 원본 언어 코드(sourceLang, 예: 'ko'), 목표 언어 코드(targetLang, 예: 'en')를 받아 번역된 텍스트를 반환.

4. 번역 함수 사용:

UI에서 번역 함수를 호출하여 결과를 화면에 표시.
예를 들어, 버튼을 눌렀을 때 텍스트를 번역하고 결과를 SnackBar로 보여주는 방법:

ElevatedButton(
  onPressed: () async {
    try {
      final translatedText = await translateText("안녕하세요", "ko", "en");
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text(translatedText)),
      );
    } catch (e) {
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text("번역 실패: $e")),
      );
    }
  },
  child: Text('Translate'),
)

참고 : https://guide.ncloud-docs.com/docs/ko/papagotranslation-api

profile
네트워크 엔지니어에서 풀스택 개발자로

1개의 댓글

comment-user-thumbnail
2024년 1월 26일

안녕하세요, 네이버 클라우드 플랫폼입니다.

네이버클라우드의 기술 콘텐츠 리워드 프로그램 '이달의 Nclouder(1월)' 도전자로 초대합니다 :)

네이버 클라우드 플랫폼 서비스와 관련된 모든 주제로 2/1(목) 23시까지 신청 가능합니다. (*1월 작성 콘텐츠 한정 신청 가능)

Ncloud 크레딧을 포함한 다양한 리워드가 준비되어 있으니 많은 관심 부탁드립니다!

자세한 내용은 아래 링크에서 확인부탁드립니다.
https://blog.naver.com/n_cloudplatform/223315900468

신청 링크
https://navercloud.typeform.com/to/lF8NUaCF

답글 달기