Simple Chatbot with ruby and Telegram bot
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 ...
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.
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.
Ở 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