
많은 회사들이 협업을 중시하고 그리고 그것을 극대화하기 위해 소통의 효율성을 중요하게 생각할 것이다. 대부분에 회사들이 slack을 많이 사용하는 것 같다. 하지만 규모가 조금 작은 스타트업이며 근무자들의 대다수가 컴퓨터에 앉아서 하는 작업이 많지 않다면? 그렇다면 핸드폰으로 빠르고 간편하게 그리고 안전성을 포기하지 않고 사용할 수 있는 서비스로 telegram이 있다.
🎯 필자는
Plating의 소프트웨어 개발자로 근무 중이며 사내 커뮤니케이션 툴로telegram을 이용한다. 텔레그램의 가장 큰 장점 중 하나는botAPI를 커스터마이징 하여 사내 업무 효율을 높이는데 상당한 도움이 될 것이라고 생각한다.
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 서비스와 연동, 심지어 결제 서비스까지 개발가능하다. (자세히 더 보기)
🙏 긴 글 읽어주셔서 감사합니다!
오타, 잘못된 개념, 의견공유 언제든 환영입니다 🖖
캬 흥미로운 주제였네요. 감사합니다 ^_^