많은 회사들이 협업을 중시하고 그리고 그것을 극대화하기 위해 소통의 효율성을 중요하게 생각할 것이다. 대부분에 회사들이 slack
을 많이 사용하는 것 같다. 하지만 규모가 조금 작은 스타트업이며 근무자들의 대다수가 컴퓨터에 앉아서 하는 작업이 많지 않다면? 그렇다면 핸드폰으로 빠르고 간편하게 그리고 안전성을 포기하지 않고 사용할 수 있는 서비스로 telegram
이 있다.
🎯 필자는
Plating
의 소프트웨어 개발자로 근무 중이며 사내 커뮤니케이션 툴로telegram
을 이용한다. 텔레그램의 가장 큰 장점 중 하나는bot
API를 커스터마이징 하여 사내 업무 효율을 높이는데 상당한 도움이 될 것이라고 생각한다.
Telegram
은 무엇인가?텔레그램(Telegram
)은 러시아 사업가 파벨 듀로프(Pavel Durov
)가 설립한 멀티플랫폼 메시징 서비스다. 2013년 10월 20일에 안드로이드로 알파 버전이 출시 되었으며 현재 월간 이용자는 2억명으로 추산된다.
텔레그램의 주요 특징은 프라이버시며, 이를 위해 End to End (E2E
) 암호화를 채택한다. 이것이 기업, 정부, 해커, 또는 다른 누군가가 보낸 메시지들을 보안성을 보장한다.
Telegram-bot
간단한 소개bot
은 텔레그램 내부에서 실행되는 third-party
애플리케이션이다. 사용자는 메시지, 명령 및 인라인 요청을 전송하여 bot
과 소통 할 수 있다. Telegram-bot
API는 HTTPS 요청을 사용하여 활용 할 수 있다.
BOT
은 어떻게 작동하는가?Telegram-bot
을 설정하기 위해 추가적인 전화번호가 필요하지 않은 특별유저
로 생각하면 쉬울 것이다.
사용자는 두 가지 방법으로 봇과 소통 할 수 있다:
BOT
과 대화창을 열거나 그룹에 추가하여 메시지 및 (약속된) 명령을 통해 봇이 작동하도록 한다. 이것은 간단한 채팅봇이나 뉴스봇에 유용하다.
BOT
의 @username
을 언급하고 (약속된) 명령을 통해 직접 요청을 전송할 수 있다. 이를 통해 채팅, 그룹 또는 채널로 직접 콘텐츠를 전송할 수 있다.
사용자가 보낸 메시지, 명령 및 요청은 서버에서 실행 중인 프로그램으로 전달되어 핸들링한다. 텔레그램의 중간 서버는 Token으로 접근해 모든 데이터를 암호화 및 통신을 처리한다.
BOT
만들기!일단 원하는 라이브러리와 기술 스택이 있을 수 있다. 필자는 다음과 같은 것을 사용하여 나만의 BOT
을 만들어 볼 것이다:
BotFather
에게 말을 건다/newbot
)BotFather
에게 승인 토큰을 요청하여 복사해놓는다 (Telegram의 Bot API에 요청을 보낼때 필요하다)Token
을 이용하여 API와 통신하며 Bot
프로그램을 구현한다local
서버를 구동하고 테스팅한다BotFather
에게 말을 걸어 새로운 Bot 생성
요청/newbot
명령어를 사용하여 새로운 Bot 생성 요청bot
의 name
을 지정해준다 (예: simple_telegram_bot_test
)bot
의 username
을 지정해준다bot
또는 Bot
으로 끝나야 한다 (예: simple_telegram_test_bot
)bot
생성 성공: "Done! Congratulations on your new bot."token
을 복사해둔다.Node.js
모듈 설치 및 프로그램 구현telegram-bot-api
다운 및 설치
npm init
"로 프로젝트 초기화 (mac 터미널 기준)npm i node-telegram-bot-api
" (터미널 실행)npm
커뮤니티의 에시를 사용하여 프로그램 구현
js 파일
만들기 (simpleBot.js
)telegram-bot-api
에서 제공하는 예시를 simpleBot.js
에 복사 붙여놓기botFather
가 제공한 token
으로 API 통신에 사용한다simpleBot
에게 /echo
명령 후 "msg
" 메시지를 전송하면 앵무새처럼 재전송해 회신한다. // npm 모듈 호출
const TelegramBot = require('node-telegram-bot-api');
// `botFather`가 제공한 `token`으로 API 통신에 사용한다
const token= '954234423:AAFVCGLtM_dE5JmhvDGlu2iC7ufO8DKGp4k'; // <--- 나의 Token
// 새로운 'bot' 인스턴스를 생성해 'polling'으로 업데이트를 fetch 하게 한다
const bot = new TelegramBot(token, {polling: true});
// 정규식으로 '/echo'를 판별하고 그 뒤에 어떤 메시지든 'msg'에 담는다
bot.onText(/\/echo (.+)/, (msg, match) => {
const chatId = msg.chat.id;
const resp = "꺄악: "+match[1];
// 식별된 "msg"는 보내온 채팅방('chatId')에게 앵무새처럼 재전송한다 ("꺄악: 'msg'")
bot.sendMessage(chatId, resp);
});
bot.on('message', (msg) => {
const chatId = msg.chat.id;
// send a message to the chat acknowledging receipt of their message
bot.sendMessage(chatId, 'Received your message');
});
simple_telegram_bot_test
에게 메시지를 전송하면 꺄악
따라한다!🏆 npm의
node-telegram-bot-api
을 사용하여 간단한 텔레그램 bot 구현이 완료되었습니다.
이외에telegram bot api
는 무궁무진한 커스터마이징이 가능하다:
간단한 정보 알림이나 리마인더 뿐만 아니라, 정보 요청, 싱글/멀티 플레이어 게임, 다른 bot 서비스와 연동, 심지어 결제 서비스까지 개발가능하다. (자세히 더 보기)
🙏 긴 글 읽어주셔서 감사합니다!
오타, 잘못된 개념, 의견공유 언제든 환영입니다 🖖
캬 흥미로운 주제였네요. 감사합니다 ^_^