+3

Simple Chatbot with ruby and Telegram bot

Ứng dụng chat Telegram

Telegram là một ứng dụng chat trên nền tảng Web và trên smartphone. Nó cũng giống như Zalo hay Viber vậy. Telegram khá hot trên thế giới, nó tập trung chủ yếu vào tốc độ và bảo mật. Ứng dụng này hoạt động rất nhanh, đơn giản và hoàn toàn miễn phí. Với Telegram, người dùng có thể tạo nhóm chat với 200 người tham gia cùng lúc trò chuyện với mọi người. Nó hỗ trợ nhiều nền tảng như Windows, OSX, GNU/Linux, Android, iOS and Windows Phone. Và đặc biệt Telegram còn hỗ trợ bot API cho phép người dùng tạo 1 con chatbot tự động trên ứng dụng Telegram.

Tạo bot API trên Telegram với BotFather

Sau khi đăng nhập với tai khoản Telegram, chúng ta truy cập đến đường dẫn BotFather. Click vào button Start, màn hình sẽ hiển thị một lish các command để có thể giao tiếp với BotFather. Sử dụng câu lênh /newbot để tạo bot mới, nó sẽ hỏi chúng ta tên của con bot. Tuy nhiên tên của bot phải là chữ thường và kết thúc bằng chuỗi "bot". Sau khi tạo thành công, thì chúng ta sẽ nhận được link room chat để chat với con bot vừa được tạo. Nhưng lúc này con bot cực kì ngu ngơ, k thể trả lời gì vì chúng ta chưa dạy gì cho nó cả. Chạy lệnh /token ở BotFather để tiến hành lấy token của API, nhúng vào chương trình của chúng ta.

Xây dựng chatbot đơn giản với Ruby

Ở hai mục trước chũng ta đã tạo 1 con bot trên telegram và get được API token của nó. Tiếp theo chúng ta sẽ xây dựng một chương trình để dạy cho con bot của chúng ta trả lời những mẫu câu có sẵn. API đã hỗ trợ gần hết, việc của chúng ta chỉ là chỉ định các trường hợp hỏi và trả lời để dạy cho con bot của mình. Đầu tiên tiến hành cài đặt telegram-bot-ruby gem

gem install telegram-bot-ruby

Tạo một file ruby có tên bất kỳ xxx.rb Đầu tiên cần import gem telegram-bot-ruby vào chương trình

require 'telegram/bot'

Tiếp đến chúng ta cần add token của bot API mà chúng ta đã get ở trên

token = 'YOUR API TOKEN'

Cuối cùng, chúng ta sử dụng các hàm đã được Bot API hỗ trợ để tiến hành dạy cho bot

Telegram::Bot::Client.run(token) do |bot|
  bot.listen do |message|
    case message.text
    when 'Hello'
      bot.api.send_message(chat_id: message.chat.id, text: "Hello, #{message.from.first_name}")
    when 'How are you ?'
       bot.api.send_message(chat_id: message.chat.id, text: "I'm ok. Thanks")
    when 'Do you know Maria Yui Ozawa Hatano?'
       bot.api.send_message(chat_id: message.chat.id, text: "Sure. I love her. I alway watch her film")
    end
  end
end

OK, bây giờ chúng ta sẽ chạy thử file ruby đã tạo và xem thành quả. Vậy là bài hướng dẫn của mình về Telegram bot API tạm thời dừng ở đây. Ở phần tới mình sẽ hướng dẫn làm thế nào để nhúng con bot này chạy được trong ứng dụng rails của mình. Cảm ơn các bạn đã theo dõi. See you next time!

Các nguồn tham khảo: https://telegram.org/blog/bot-revolution https://github.com/atipugin/telegram-bot-ruby


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí