Chivato Bot

Sobre los bots se habla mucho, dicen que si pueden imitar el comportamiento humano, dándoles el titulo de inteligencia artificial, pero no deja de ser un programa y si el que lo diseña tiene fallos, su inteligencia artificial sera una risa. Yo suelo utilizarlos en avisos varios(chivato), encuestas a grupos o calculador de algo. ¿De donde sacamos el BOT?Captura de pantalla de 2018-07-12 19-10-12

Lo primero es tener instalado Telegram , mal te va a ir y comunicarse contigo o tu grupo donde lo invites, si no tienes la app de mensajería. Instalamos la app o via web .

Y lo segundo saber tu identificador como usuari@ en telegram. La manera más sencilla que yo conozco es con otro bot que se llama @myidbot , lo buscas en el buscador de la app y lo iniciamos, y después le enviás el comando “/getid” y el te responderá tu id, normalmente un numero. Guardamos ese id, lo usaremos para identificarnos y mandarnos mensajes.

Hay que reconocer que esta gente de Telegram y su API es interesante. Hay varias maneras de su uso, podemos mandar mensajes utilizando su API web (requerimientos POST o GET) o instalando la pyTelegramBotAPI de eternnoir que funciona de lujo con python.

En la app de telegram podemos buscar a botfather , que es otro bot que nos guiara a la hora de crear el nuestro, puedes hacerlo desde el móvil también . En tres pasos tienes tu bot creado en telegram.

Ojo allí  no se suben códigos, solo le damos nombre del bot, foto de perfil y poco más, pero nos da una cosa muy importante, el “TOKEN” , o identificador de nuestro nuevo bot, simplemente son caracteres que tendrás que guardar, serán requeridos para poder que se cominique con su server para dar su utilidad y mensajearnos, utilizaremos python como no, para realizar el script 🙂 .

Para que funcione, no olvidar empezar una conversación con el nuevo bot creado, lo buscamos en el buscador de la app e iniciamos antes …… !! importante ¡¡ o no conseguiremos que haga su trabajito.Captura de pantalla de 2018-07-18 13-59-33

Primera prueba sencilla con su API web. De python poco que decir importamos requests (peticiones HTTP) y sys (acceso a variables de interprete para leer argumento o mensaje). Si nos leemos la documentación de la API, en la parte de métodos aparece, sendMessage , sendPhoto y demás métodos. Me dieron problemas al intentar usarlos , solo funciono bien el envió de mensaje, las fotos y archivos no me funcionaron (dummy??). La manera de uso del script seria esta:

tu_user@tu_makina:~$ python bot.py "Hola prueba"

Ejecutamos el script con argumento o mensaje a que envíe el bot (entre comillas).Captura de pantalla de 2018-07-12 21-23-05

Ahora cambiare la forma de utilizar el bot. La API de eternnoir. Lo primero es instalarla. Con la utilidad PIP es la forma mas sencilla.

tu_user@tu_makina:~$ pip install pyTelegarmBotAPI

Captura de pantalla de 2018-07-12 16-43-04

Puede darte algún problemilla también, según la versión de PIPCaptura de pantalla de 2018-12-27 18-13-38En la web de Github podemos descargar el zip o clonar con la herramienta git

user@makina:~ $ git clone https://github.com/eternnoir/pyTelegramBotAPI.git

Ingresamos al directorio e instalamos con setup.py

user@makina:~/pyTelegramBotAPI $ sudo python setup.py install

Ya podemos utilizarla y mandar archivos. Importamos modulo de telebot, sabemos el token (que nos dio BotFather) y tenemos nuestro ID de user en telegram (lo facilito myidbot), falta abrir la imagen y enviarla con el método send_photo. Como siempre, nos leemos la doc y mejor nos ira. Captura de pantalla de 2018-07-18 12-56-07 Implementar en un sistema de seguridad un chivato-bot seria rápido y ocupa poco. Puedes medir temperaturas y mandar mensajes, detectar movimiento y mandar foto, consultas MySql o todas las cosas que se te ocurran, solo cambiar el método por el correspondiente. Esto es solo empezar. En la web de mi amigo ElTallerDelBit encontraras como implementar el bot con motion.. !! eres un crack ¡¡Captura de pantalla de 2018-07-18 13-42-59

También podemos comunicar con el bot y tener un menú con ordenes claras a que ejecute. En este ejemplo de abajo, hay alguna opción, se trata de crear un cuadro y un decorador de la API que reciba el proceso a ejecutar. Actuar relés o una nuclear sera sencillo . Veamos un script para poner en alto o en bajo, un pin de la raspberry.

# IMPORTAMOS MODULOS
import RPi.GPIO as GPIO
import telebot
from telebot import types
# TOKEN DE TU BOT
bot = telebot.TeleBot("41JJJJ:AAHIJJJJJJJJJJJJJJJJf0-XBVAt2As")
# TUS IDE DE USERS PARA ACCESO
num_dict = {7900000000: 'Raf@'}

# decorador escucha el comando start de empezar @bot.message_handler(commands=[‘start’])
def welcome(message):
chat_id = message.chat.id # id del usuario
if chat_id in num_dict: # si id es key del dicc de  users
nombre = num_dict[chat_id]
bot.send_message(chat_id, “Bienvenido %s” % nombre)
markup = types.ReplyKeyboardMarkup(one_time_keyboard=True)
markup.add(‘ON’, ‘OFF’)
msg = bot.send_message(chat_id, “Elige opcion”, reply_markup=markup)
bot.register_next_step_handler(msg, proceso)
else: # si no hay acceso
bot.send_message(chat_id, “Tu no tienes acceso”)

def loop(chat_id, text):
if chat_id in num_dict: # si id es key del dicc user
markup = types.ReplyKeyboardMarkup(one_time_keyboard=True)
markup.add(‘ON’, ‘OFF’)
text = text + ‘ Elige opcion’
msg = bot.send_message(chat_id, text, reply_markup=markup)
bot.register_next_step_handler(msg, proceso)
else: # si no hay acceso
bot.send_message(chat_id, “Tu no tienes acceso”)

def proceso(message):
chat_id = message.chat.id # id del usuario
a = message.text
if a == ‘ON’:
GPIO.setmode(GPIO.BCM) # tipo de numeracion de gpios
GPIO.setwarnings(False)
GPIO.setup(13, GPIO.OUT) # pin 13 sera salida
GPIO.output(13, True) # activamos
loop(chat_id, “PIN en Alto\n”)
elif a == ‘OFF’:
GPIO.output(13, False) # bajo al pin
GPIO.cleanup(13) # limpiamos
loop(chat_id, “Pin en Bajo\n”)
else:
markdown = “””
*Hubo un error
Buscate la vida*
[putosistema.wordpress.com](URL)
“””
bot.send_message(chat_id, markdown, parse_mode=”Markdown”)
loop(chat_id, “Error\n”)

bot.polling(none_stop=True, interval=0)

Happy Bot

Anuncios

2 comentarios sobre “Chivato Bot

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s