0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Ruby wrapper for Telegrambot's Bot API
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 10.0
~> 3.4
~> 0.42
~> 1.9
~> 2.14
~> 0.10

Runtime

~> 0.9.2
~> 1.0
 Project Readme

Telegrambot Build Status

(iba a escribir este readme en ingles, pero luego dije: "¿pa qué?")

Otro wrapper de Telegram, resulta que los que habían por allí no funcionaban como yo necesitaba, por lo que escribí esta a mi gusto.

Instalacion

Se instala como cualquier gem via Gemfile:

gem 'telegrambot'

Y luego:

$ bundle

O directamente con:

$ gem install telegrambot

Uso

Muy simple de usar:

# Configuras el token
bot_token = "213652360:AAGYiBuAslikmBFnO9zvgwns2ckWDVKOpJg"
bot = Telegrambot::Client.new(bot_token)

# Luego sólo llamas al endpoint de telegram en snake_case
updates = bot.api.get_updates

# O para enviar un mensaje
mensaje = "¡Mira! me envié un mensaje"
bot.api.send_message(chat_id: -160175187, text: mensaje)

# Incluso puedes enviar InlineKeyboard
boton = Telegrambot::Types::InlineKeyboardButton.new(
  text: "Visita mi página",
  url: "https://mijailr.com")
markup = Telegrambot::Types::InlineKeyboardMarkup.new(inline_keyboard: boton)
bot.api.send_message(chat_id: -160175187, text: mensaje, reply_markup: markup)

Como puedes ver todos los types declarados en la documentación de la api de Telegram tienen exactamente el mismo nombre aquí por lo que basta con ver esa documentación para saber que usar aquí.

Lo único que cambia son los enpoints que pasan de CamelCase a snake_case por lo que todo lo que llames con la api es asi.

Para webhook

Para web hook es la misma lógica, si usas ruby on rails es más sensillo.

# Solo debes agregar a algún método de un controlador
def webhook
  bot_token = "213652360:AAGYiBuAslikmBFnO9zvgwns2ckWDVKOpJg"
  bot = Telegrambot::Client.new(bot_token)
  mensaje = bot.listen_webhook(params)
  # De aquí en adelante lo puedes usar como un objeto Telegrambot::Types::Message
  # También puedes saber si el mensaje trae un `bot_command`
  if mensaje.command?
    mensaje.command
    mensaje.attributes
    # haces lo que necesites con mensaje.command y mensaje.attributes
  end
end

Si no usas rails, asegurate que params sea un hash.

License

GNU GPLv3.