반응형
회사에서 텔레그램 봇 만들 것을 지시받았다.
그래서 지난 포스팅에서 클릭하면 해당 내용을 자동으로 발신하게 만들어주는 것을 만들었다.
그것은 유닛테스트를 위한 것이니 필요없는... ㅠ
node용으로 만들라고해서 찾아보았다.
가장 도움이 된 글.
이 내용이 해당 포스팅에 있는 코드.
실제로는 해당 라이브러리 코드를 거진 베껴온 코드더라 ㅎ
www.npmjs.com/package/node-telegram-bot-api
// 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');
});
여기서 필요없는 것들을 짤라내야한다.
const TelegramBot = require('node-telegram-bot-api');
const token= '954234423:AAFVCGLtM_dE5JmhvDGlu2iC7ufO8DKGp4k'; // <--- 나의 Token
const bot = new TelegramBot(token, {polling: true});
const chatId = msg.chat.id;
const resp = "꺄악: "+match[1];
bot.sendMessage(chatId, resp);
쓸모없는 부분 쳐내니까 실제로 필요한 부분이 나온다.
이를 커스텀해야한다.
const TelegramBot = require('node-telegram-bot-api');
const token= '토큰'; // <--- 나의 Token
const chatId = '대화방 id';
const bot = new TelegramBot(token, {polling: true}); // 해당 부분을 통해서 갱신한다.
function telebot(message) {
bot.sendMessage(chatId, message) // 여기서 chatId를 빼먹으면 대화방이 어딘지 몰라서 에러뿜뿜
.then(()=> {
process.exit();
})
.catch((e)=> {
console.log(e);
});
};
telebot('안녕하세요 개발자 kasumil입니다.');
이렇게 만들었다.
좀 걱정스러운 부분이 library가 없어질 위험이 있어서 다른 라이브러리를 찾아야 하나 고민 중.
728x90
'취업 > PHP' 카테고리의 다른 글
php 제이쿼리 - ajax 이후 아무리해도 클릭먹통 증상 (0) | 2021.05.31 |
---|---|
텔레그램 봇 오류 409해결방법. stopPolling (0) | 2021.05.12 |
php코드 자바스크립트를 통한 실시간 시간 바꾸기 (0) | 2021.04.29 |
php 텔레그램 텔봇 만들기(feat.유투브 10분만에 텔레그램 봇 만들기) (0) | 2021.04.29 |
서버 에러알림 SMS를 텔레그램봇을 이용한 알림연동으로 교체하기. (0) | 2021.04.29 |