Пишем своего Telegram бота на Ruby в 10 строк

от автора


После выпуска Telegram Bot Platform многие задумывались о написании своего бота. Этот пост описывает минимальные шаги, необходимые для собственного бота на ruby. Для этого потребуется только аккаунт в Telegram и машина с установленным ruby на ней.

Я выбрал ruby из за удобного гема для работы с Telegram bot api.

Первое, что нужно сделать, это создать .rb файл, в котором будет храниться логика бота, к примеру, start_bot.rb, и добавить туда минимальный код, необходимый для работы бота:

require 'telegram/bot' token = 'YOUR_TELEGRAM_BOT_API_TOKEN' Telegram::Bot::Client.run(token) do |bot|   bot.listen do |message|     case message.text     when '/start'       bot.api.sendMessage(chat_id: message.chat.id, text: "Hello, #{message.from.first_name}")     end   end end 

Для работы сервера не хватает только установки гема. Установку можно совершить двумя способами:
1. Установка гема непосредственно на машину:

gem install telegram-bot-ruby 

2. Используя Gemfile

gem 'telegram-bot-ruby' 

с последующим выполнением

bundle 

Я для простоты примера использовал первый способ.

Теперь необходимо получить токен для бота.
Заходим в Telegram, добавляем бота @BotFather, и создаем бота:

Далее добавляем токен в файл и получаем готовый сервер для бота:

require 'telegram/bot' token = '118997426:AAFVFtYa15Z7ckyDUIHb578NazgepL4kmU8' Telegram::Bot::Client.run(token) do |bot|   bot.listen do |message|     case message.text     when '/start'       bot.api.sendMessage(chat_id: message.chat.id, text: "Hello, #{message.from.first_name}")     end   end end 

Для проверки работы бота в начале запускаем сервер:

ruby start_bot.rb 

А после пишем боту в Telegram:

Как видно, все работает.

PS: Бота после я удалил, поэтому мой токен, как и бот, недоступны.

ссылка на оригинал статьи http://habrahabr.ru/post/264707/