ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 텔레그램을 이용한 나에게 메세지 보내기 -2
    코딩/프로젝트 2018. 10. 29. 00:19

    의외로 삽질을 좀 했다

    간단한거긴 한데 서버가 필요해서 급하게 네이버 클라우드 플랫폼에서

    서버를 사용한다


    https://console.ncloud.com


    micro 서버는 1년간 무료란다


    물론 메모리 1g에 성능은 좀 구리지만


    30만 크레딧을 주니 고성능 서버가 필요하면 서버를 더 올려 사용하면 될 것 같다.


    ..서버 요금 폭탄 얘기를 몇번 들어서 무서워서 마이크로서버를 이용한다


    엥.. 레디스도 있다. ㅎㅎ


    뭐 레디스만 둥둥 띄워져 있는건가 싶어 센트os를 이용하려하다


    레디스만깔아봤느데 센트 기반에 레디스가 깔려있던 것이었다 ㅎㅎ


    나중에 레디스를 이용할 생각이니 여기에서 node를 깔아야겠다


    네이버 클라우드 플랫폼에  대해서는 설명은 더 이상 하지 않겠다 

    워낙 메뉴얼이 잘 나와있다...A-Z 까지.. 


    일단 서버가 구축됬으면 이제 아까전에 말한 서비스를 올려야 하겠다.


    일단 node.js 와 npm 을 깔기 위해선 리포지토리를 확인해보자


    $yum repolist


    아마 나처럼 서버를 이용한다면 없을것이다. 

    그렇다면 epel 저장소를 추가해야한다.  

    [ Extra Packages for Enterprise Linux  -> 엔터프라이즈 리눅스 를 위한 추가 패키지 ]


    $yum install epel-release


    됬으면 우리가 필요한 모듈을 설치하도록 하자


    $yum install npm node.js


    그런데 이상한 에러가 뜬다 


    npm: relocation error: npm: symbol SSL_set_cert_cb, version libssl.so.10 not def                           ined in file libssl.so.10 with link time reference



    $yum update openssl

    openssl을 업뎃해주자.  그러면 오류가 사라진다
     

    내가 이용한 모듈은 두가지인데 

    1. node-cron
    어플리케이션 내에서 cron 처럼 사용 가능하게 해준다

    2. node-telegram-bot-api

    텔레그렘 봇 api node.js 용 


    이 두가지를 install 해주자


    $npm install --save node-cron

    $npm install --save node-telegram-bot-api



    이제 준비가 끝났다.


    뭐 예외처리니.. 뭐든 간 해줘야하겠지만.


    난 오후 1시에 돈 보냈냐고 알람 보내는게 최종목표다


    $ vim telegramBot.js 

    let cron = require('node-cron'); const TelegramBot = require('node-telegram-bot-api'); const Token = '토큰'; const bot = new TelegramBot(Token, { polling : true }); const CHAT_ID = '채팅방 ID'; cron.schedule('0 13 * * 0-5', function(){ botMessage(); }).start(); function botMessage(){ const text = ' 돈 보내셨나요..?'; bot.sendMessage(CHAT_ID,text).then(function(data){ console.log('success'); }).catch(err => {console.log(err);}); }

    *      *      *      *      *
    분(0-59)  시간(0-23)  일(1-31)  월(1-12)   요일(0-7)

    뭐 cron의 보통 설정 방법은 위와 같다

    나는 월~금 13시에 보내는것이니


    0 13 * * 0-5 

    이렇게 설정해주었다


    테스트를 위해서 * * * * *를 사용해서 분당오게 해보았다



    잘온다...ㅠㅠ 

    중간에 분이 비는거는 오류 때문에 그렇다

    이게 봇인스턴스를 여러개 만들면 오류가

    발생하기 때문에 처음에 한번만 생성하도록하자 

    이제 ...실행 시켜서 맨날맨날 나한테 알람을 보내게 하자^^ 히히

    node telegramBot.js & 


    참고로 & 기호를 쓰면  백그라운드에서 실행한다

    jobs 명령어를 쓰면 현재 백그라운드에서 동작하는  프로그램을 확인할수 있다 .

    ㅎ간단하고 즐겁게 푸싱시스템을 사용할 수 있다. 

    지금은 단순 스케쥴링 동작이지만 

    다음엔 봇에 명령을 내려서 특정 동작을 수행할 수 있게도 해봐야겠다


    댓글

Designed by Tistory.