[CODING] Ruby telegram-bot 을 이용한 텔레그램 봇 만들기

안녕하세요. 하훌입니다. 오늘은 Ruby를 이용한 텔레그램 봇 만들기에 대한 이야기로 준비했습니다. 짧은 내용이지만.. 워낙 정신없이 지낸지라 이제서야 포스팅을 하게되네요.

그럼 시작해보겠습니다.

@BotFather를 이용한 신규 Bot 생성

먼저 텔레그램 내 봇들은 @BotFather를 통해 관리되고 있습니다. Father를 친구추가 한 후 봇을 생성하지면 됩니다.

대화요청을 하면 아래와 같이 Help 페이지와 시작 버튼이 존재합니다. 시작을 누르거나 /start 를 입력하면 bot에 대한 명령어를 줍니다.

/newbot으로 신규 bot을 생성해줍니다.

그다음 bot의 이름을 입력해주십니다. 이름은 꼭 뒤가 bot Bot으로 끝나야합니다.

Ruby coding to telegram-bot

먼저 API를 쉽게 다루기 위해 telegram-bot gem을 설치합니다. (python도 아마 비슷하게 있을거에요)

HaHwul #> gem install telegram-bot-ruby Fetching: descendants_tracker-0.0.4.gem (100%) Successfully installed descendants_tracker-0.0.4 Fetching: ice_nine-0.11.2.gem (100%) Successfully installed ice_nine-0.11.2 Fetching: axiom-types-0.1.1.gem (100%)

HaHwul #> irb 2.1.5 :001 > require ‘telegram/bot’ => true

자 정상적으로 작동하는 것까지 확인했네요. 그럼 간단하게 코드를 짜볼까요?


require 'telegram/bot'    # lib(gem)을 로드합니다.

token = 'TOKEN'  # @BotFather에게 받은 Token 값을 넣어줍니다.
Telegram::Bot::Client.run(token) do |bot|
  bot.listen do |message|
    case message.text   # 받은 메시지 데이터를 보고  
    when '/hahwul'      # /hahwul 이 있다면 아래 명령을 수행합니다.
      bot.api.send_message(chat_id: message.chat.id, text: "Welcome Master. http://www.hahwul.com")
    end
  end
end

자 이제 코드를 실행하고 텔레그램에서 명령어를 보내봅시니다.

#> ruby bot.rb

자 잘 되지요? telegram-bot gem에 대해 찾아보시면 만들어진 API에 대한 정보를 얻을 수 있습니다. 참고해주세요~

(http://www.rubydoc.info/gems/telegram-bot-ruby/0.7.2 )

Reference

http://www.rubydoc.info/gems/telegram-bot-ruby/0.7.2