[잔디 커넥트] 잔디 메시지 번역 봇 만들기
잔디 메시지를 번역할 수 있는 방법이 있을까요?
대만, 말레이시아, 두바이, 일본 등 여러 국가에서 다국어를 사용하는 토스랩 멤버들 사이에서도 많이 문의해 주셨던 그 번역 봇 만들기 방법. 지금 공개합니다.
< 잔디 팀의 번역 봇 예시 >
방법
구글 번역 API 활용하기
파파고 번역 API 활용하기
1. 구글 번역 API 활용하기
ㅣ준비물
잔디의 Incoming Webhook URL
과 Outgoing Webhook URL
2개의 값이 필요합니다.
Outgoing Webhook URL
을 쉽게 생성하기 위해서 Google Apps Script을 활용했습니다.
1. 잔디 커넥트 Incoming Webhook 만들기
1-1) 번역 봇을 연결하려는 대화방 상단에 ‘잔디 커넥트’ 아이콘을 클릭해 [연동하기]를 시작합니다.
- [Webhook 수신 (Incoming Webhook) 연동하기] 선택해 주세요.
- 커넥트 [프로필 설정] -> [연동 추가하기] 클릭해 주세요.
1-2) [연동 추가하기] 실행 후 확인되는 Incoming Webhook URL을 [복사]해 주세요.
2. 구글 앱스 스크립트 (Google Apps Script) 만들기
번역 봇을 만들기 위해 Outgoing Webhook URL을 생성해야 합니다. 구글 스프레드 시트와 구글 앱스 스크립트를 활용하고자 합니다.
2-1) 구글 스프레드시트를 생성 -> [확장 프로그램] -> [Apps Script] 선택해 주세요.
- code.gs 옆 […] -> 이름 변경하기 -> trans.gs로 변경합니다.
- 프로젝트 이름 변경 -> [구글 GAS] 로 설정해 주세요.
trans.gs
에 아래 코드 예시 전체를 복사해 붙여넣기 합니다.
※ 단, 아랫부분에서 Incoming Webhook URL
은 1-2) 순서에서 만들어 복사해놓은 Webhook URL 값으로 변경합니다.
var jandi_incoming_url = "https://wh.jandi.com/connect-api/webhook/26188500/5649f18bc3355d0b5457c2fa06axxxxx";
function doPost(e) {
var jsonString = e.postData.getDataAsString();
var jsonData = JSON.parse(jsonString);
var requestString = jsonData.data;
// text, source(한국어), target(영어)
var translatedText = LanguageApp.translate(requestString, 'ko', 'en') ;
// jandi 설정 JCC2000 - 구글번역기v2
var jandi_incoming_url = "https://wh.jandi.com/connect-api/webhook/26188500/5649f18bc3355d0b5457c2fa06axxxxx"; // 수정1
var jandi_headers = {
"Accept": "application/vnd.tosslab.jandi-v2+json",
"Content-type": "application/json",
};
var jandi_formData = {
"body": translatedText
};
var jandi_options = {
"method": "POST",
"payload": JSON.stringify(jandi_formData),
"headers": jandi_headers,
};
response = UrlFetchApp.fetch(jandi_incoming_url, jandi_options);
Logger.log(response);
};
✔️만약에 위의 코드로 구글 앱스 스크립트가 정상적으로 실행되지 않을 경우 아래 링크로 접속하여 코드를 복사 후 사용해 주세요!
[잔디 커넥트] 잔디 메시지 구글 번역 봇 만들기 – 구글 앱스 스크립트 trans.gs
✔️ 텍스트 원본이 ‘한국어’, 번역된 결과물을 ‘영어’로 설정했기에 ‘ko’, ‘en’ 순서로 코드 내부에 설정되어 있습니다. 더 다양한 언어로 번역을 원한다면, 구글 번역의 이 링크에서 Language Code Value를 참고해주세요. 원본과 결과물 언어 코드를 변경하면 됩니다.
// text, source(한국어), target(영어)
var translatedText = LanguageApp.translate(requestString, 'ko', 'en') ;
- 자동으로 언어 감지 기능을 이용한 구글 번역 봇 만들기는 관련 링크를 참조해 주세요.
2-5) 코드 설정이 완료되었으면, 스크립트 배포를 해 주세요.
- [배포] -> [새 배포] 를 선택해 주세요.
- [유형 선택] -> 설정 [⚙️] -> [웹 앱] 클릭해 주세요.
- 다음 사용자 인증 정보로 실행 : [나]
액세스 권한이 있는 사용자 : [모든 사용자]로 설정해 주세요.
- 새 배포의 [액세스 승인]을 해 주세요.
- 구글 계정이 접근하는 것을 허용해 주세요.
- 잔디 Outgoing Webhook에서 삽입할 URL을 복사합니다.
3. 잔디 커넥트 Outgoing Webhook 만들기
3-1) 번역 봇을 연결하려는 대화방 상단에 ‘잔디 커넥트’ 아이콘을 클릭해 [연동 항목 추가하기]를 시작합니다
- [Webhook 발신 (Outgoing Webhook) 연동하기]를 선택합니다.
3-2) Outgoing Webhook의 세부 항목을 설정해 주세요.
① 원하는 [시작 키워드]를 입력합니다. ex) /구글, /번역, /한영 등
Incoming Webhook
과 Outgoing Webhook
이 나란히 연동되어 있는 것을 확인할 수 있습니다.
② 원하는 [커넥트 설명]을 입력합니다. 커넥트에 대한 설명을 입력하여 팀 내 구성원들이 더 잘 활용할 수 있도록 합니다.
③ [프로필 설정]에서 Outgoing의 이름을 입력해 주세요.
④ 2-5)에서 복사했던 구글 Apps script 배포 URL을 입력 후 [연동 추가하기]를 선택해 주세요.
3-3) 드디어 잔디 메시지 구글 번역 봇 만들기가 완료됐습니다!
- 3-2)번에서 입력했던 ① 시작 키워드와 ② 커넥트 설명이 실제 대화방에서 보이는 예시입니다.
✔️ 원문 언어는 한국어, 번역 결과 언어는 영어로 설정했기에 아래 예시처럼 입력하면 됩니다.
/구글 <번역하고싶은말>
< 잔디에 번역된 구글 번역 봇 예시>
2. 파파고 번역 API 활용하기
ㅣ준비물
아래 총 6개의 값이 필요합니다.
- 파파고 번역 API의
Client ID
,Client Secret
- 파파고 언어 감지 API의
Client ID
,Client Secret
- 잔디 커넥트의
Incoming Webhook URL
과Outgoing Webhook URL
Outgoing Webhook URL
을 쉽게 생성하기 위해서 Google Apps Script을 활용했습니다.
l 동영상 설명으로 보기
1. 파파고 번역 API 이용 신청
1-1) 네이버 개발자 센터에서 애플리케이션을 등록해 주세요.
- 애플리케이션 이름 : ‘파파고번역’ 이라고 임의 설정
- 사용 API : ‘Papago 번역’ 선택
- 서비스 환경 : ‘Web 설정’ 선택 후, 아래 2개 웹 서비스 URL을 추가
– https://jandi.com
– https://google.com
- 네이버 측 공식 가이드 가이드 문서를 참고하시면 자세한 내용을 확인할 수 있습니다.
- 애플리케이션을 등록한 네이버 아이디는 ‘관리자’ 권한을 가지게 되므로 네이버 계정의 보안에 각별히 주의해 주세요.
1-2) 등록이 완료되면, 내 애플리케이션 중 번역 API의Client ID
, Client Secret
을 확인합니다. (개인 정보 보호를 위해 Client ID, Client Secret을 일부 편집했습니다.)
2. 파파고 언어 감지 API 이용 신청
2-1) 다시 네이버 개발자 센터에서 애플리케이션을 등록해 주세요.
- 애플리케이션 이름 : ‘파파고언어감지’ 로 임의 설정
- 사용 API : ‘Papago 언어감지’ 선택
- 서비스 환경 : ‘Web 설정’ 선택 후, 아래 2개 웹 서비스 URL을 추가
– https://jandi.com
– https://google.com
2-2) 등록이 완료되면, 내 애플리케이션 중 언어감지 API의Client ID
, Client Secret
을 확인합니다. (개인 정보 보호를 위해 Client ID, Client Secret을 일부 편집했습니다.)
3. 잔디 커넥트 Incoming Webhook 만들기
3-1) 번역 봇을 연결하려는 대화방 상단에 ‘잔디 커넥트’ 아이콘을 클릭해 [연동하기]를 시작합니다.
- [Webhook 수신 (Incoming Webhook) 연동하기]를 선택합니다.
3-2) 연동 서비스 프로필 설정에서 메시지 프로필 이미지와 이름을 설정 후 [연동 추가하기] 를 클릭해 주세요.
- 이후 생성되는 Incoming Webhook URL을 [복사]해 주세요.
4. 구글 앱스 스크립트 (Google Apps Script) 만들기
번역 봇을 만들기 위해 Outgoing Webhook URL을 생성해야 합니다. 이번에도 구글 스프레드시트와 구글 앱스 스크립트를 활용하고자 합니다.
4-1) 구글 스프레드시트를 생성 -> [확장 프로그램] -> [Apps Script] 선택해 주세요.
4-2) 구글 스크립트의 제목을 파파고 GAS
으로 변경 및 기본적으로 생성되어 있는 코드.gs
에 아래 코드 예시 전체를 복사해 붙여넣기 해주세요. (개인 정보 보호를 위해 Client ID, Client Secret을 일부 편집했습니다.)
<코드.gs>
function doPost(e) { var jsonString = e.postData.getDataAsString(); var jsonData = JSON.parse(jsonString); var requestString = jsonData.data; // papago 언어감지 var language_url = "https://openapi.naver.com/v1/papago/detectLangs"; var language_headers = { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'X-Naver-Client-Id': 'jfCMu000000Fq3t1xxxx', // 수정1 'X-Naver-Client-Secret': '0p_000xxxx' // 수정2 }; var language_formData = { 'query': requestString } var language_options = { "method": "POST", "payload": language_formData, "headers": language_headers, "muteHttpExceptions": true }; var language_response = UrlFetchApp.fetch(language_url, language_options); var languagejsonData = JSON.parse(language_response); var _language_message = JSON.stringify(languagejsonData.langCode); var language_message = _language_message.slice(1,-1); // papago 번역 var papago_url = "https://openapi.naver.com/v1/papago/n2mt"; var papago_headers = { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'X-Naver-Client-Id': 'MRUJH00004uoJt8Wxxxx', // 수정3 'X-Naver-Client-Secret': 'f2t00cxxxx' // 수정4 }; var papago_formData = { 'source': language_message, 'target': 'en', 'text': requestString }; var papago_options = { "method": "POST", "payload": papago_formData, "headers": papago_headers, "muteHttpExceptions": true }; var papago_response = UrlFetchApp.fetch(papago_url, papago_options); var papagojsonData = JSON.parse(papago_response); var message = papagojsonData.message.result.translatedText.replace(/\\n/g, '\n'); // jandi 설정 var jandi_incoming_url = "https://wh.jandi.com/connect-api/webhook/26188500/1601e1ef45840591bac1a953ff782003"; //수정5 var jandi_headers = { "Accept": "application/vnd.tosslab.jandi-v2+json", "Content-type": "application/json", }; var jandi_formData = { "body": message }; var jandi_options = { "method": "POST", "payload": JSON.stringify(jandi_formData), "headers": jandi_headers, }; response = UrlFetchApp.fetch(jandi_incoming_url, jandi_options); Logger.log(response); };
만약에 위의 코드로 구글 앱스 스크립트가 정상적으로 실행되지 않을 경우 아래 링크로 접속하여 코드를 복사 후 사용해 주세요! (개인 정보 보호를 위해 Client ID, Client Secret을 일부 편집했습니다.)
[잔디 커넥트] 잔디 메시지 파파고 번역 봇 만들기 – 구글 앱스 스크립트 code.gs
※ 단, 아랫 부분에서 아래 5가지를 나에게 맞게 수정합니다.
- 파파고언어감지 Client-ID와 Secret은 2-2) 순서에서 만들어진 값을 복사해서 변경합니다
- 파파고번역 Client-ID와 Secret은 1-2) 순서에서 만들어진 값을 복사해서 변경합니다.
Incoming Webhook URL
은 3-2) 순서에서 만들어 복사한 Incoming Webhook URL 값으로 변경합니다.- 개인 정보 보호를 위해 Client ID, Client Secret을 일부 편집했으니 참고 부탁드립니다.
'X-Naver-Client-Id': 'jfCMu000000Fq3t1xxxx', // 언어감지 값으로 수정1 'X-Naver-Client-Secret': '0p_000xxxx' // 언어감지 값으로 수정2 'X-Naver-Client-Id': 'MRUJH00004uoJt8xxxxx', // 번역 값으로 수정3 'X-Naver-Client-Secret': 'f2t00cxxxx' // 번역 값으로 수정4 var jandi_incoming_url = "https://wh.jandi.com/connect-api/webhook/26188500/1601e1ef45840591bac1a953fxxxxxxx"; // 수정5
※ 텍스트 원본은 ‘18개국어 자동 언어감지‘, 번역된 결과물을 ‘영어’로 설정했기에 ‘target’ : ‘en’ 코드로 내부에 설정되어 있습니다. 더 다양한 언어로 번역을 원한다면, 파파고 번역의 이 링크에서 출력 결과 Code Value를 참고해 주세요. 결과물 언어 코드를 변경하면 됩니다.
var papago_formData = { 'source': language_message, 'target': 'en', 'text': requestString
아래와 같이만 지원된다고 합니다.
source 원문 언어 <->target 번역 결과 언어 ko<->en, ko<->ja, ko<->zh-CN, 'CN'은 대문자 ko<->zh-TW, 'TW'은 대문자 ko<->hi, ko<->es, ko<->fr, ko<->pt, ko<->vi, ko<->id, ko<->th, ko<->ru
4-3) 코드 설정이 완료되었으면, 스크립트 배포를 위해 아래의 작업을 해 주셔야 합니다.
- [프로젝트 저장]을 눌러주세요.
- [실행] 버튼이 활성화되면 실행 버튼을 눌러주세요.
- 위의 이미지 예시처럼 오류가 확인되더라도 무시하고 진행해 주세요.
- [배포] -> [새 배포] 를 선택해 주세요.
- [유형 선택] -> 설정 [] -> [웹 앱] 클릭해 주세요.
- 다음 사용자 인증 정보로 실행 : [나]
액세스 권한이 있는 사용자 : [모든 사용자]로 설정해 주세요.
- 새 배포의 [액세스 승인]을 해 주세요.
- [승인 필요] -> [권한 검토] -> 계정 선택 후 -> [허용]을 해주세요.
- 잔디 Outgoing Webhook에서 삽입할 URL을 복사합니다.
5. 잔디 커넥트 Outgoing Webhook 만들기
5-1) 번역 봇을 연결하려는 대화방 상단에 ‘잔디 커넥트’ 아이콘을 클릭해 연동 항목 추가하기를 시작합니다.
- [Webhook 발신 (Outgoing Webhook) 연동하기]를 선택합니다.
5-2) Outgoing Webhook의 세부 항목을 설정해 주세요.
① 원하는 [시작 키워드]를 입력합니다. ex) /파파고, /번역, /한영 등
Incoming Webhook
과 Outgoing Webhook
이 나란히 연동되어 있는 것을 확인할 수 있습니다.
② 원하는 [커넥트 설명]을 입력합니다. 커넥트에 대한 설명을 입력하여 팀 내 구성원들이 더 잘 활용할 수 있도록 합니다.
③ [프로필 설정]에서 Outgoing의 이름을 입력해 주세요.
④ 4-3)에서 복사했던 구글 Apps script 배포 URL을 입력 후 [연동 추가하기]를 선택해 주세요.
‘번역해 주는 토픽’에서 위에서 만든 2개의 Incoming Webhook
과 Outgoing Webhook
이 추가되어 있는 것을 확인할 수 있습니다.
이제 번역을 해볼게요~ 원문 언어는 자동 감지, 번역 결과 언어는 영어로 설정했기에 아래 예시처럼 입력하면 됩니다. 저는 시작 키워드를 ‘/파파고’이라고 설정했습니다.
/파파고 <번역하고싶은말>
< 잔디에 번역된 파파고 번역 봇 예시>
구글과 파파고로 각각 잔디 메시지 번역 봇 만들기가 끝났습니다! 중간중간 막히면 언제든지 잔디 메뉴의 [1:1 문의하기]로 연락 주세요!
번역봇 사용해 보고 싶다면? 잔디 데모팀에서 사용 및 연동해 보세요.
이번 글은 잔디 공인 컨설턴트 JCC 1기 이청규님이 기고해 주셨습니다 : )
JCC 이청규 님의 다른 잔디 활용 글 보러 가기
- JENNIFER 연동으로 서비스 상태 모니터링하기
- JIRA 담당자 지정 알림 잔디로 보내기(Team Incoming Webhook 활용법)
- WhaTap(와탭) 연동으로 URL 상태 모니터링하기
- Feedly로 기술 블로그의 최신 글을 모아서 볼 수 없을까?