Sueñan los androides con twits eléctricos?
Pensaba armar una nota explicando lo facil que es armar un bot en twitter y de como complementarlo con una API copada, pero despues de una interaccion casual, tambien quiero hablar un poco sobre la famosa IA.
Pero vamos por partes
Twitter Bot
Esta idea nacio robando tomando como ejemplo lo que hizo el gran @fermezz con el bot de star-wars, y utilizando en este caso datos de la api de Marvel.
Como "tuitear" desde un script?
Super facil con python, solo necesitamos:
- Obtener una API key en Twitter con nuestra cuenta
- En este link se explica muy sencillo
- Utilizar una libreria que nos "ayude" con esto.
- Tweepy al rescate
Una vez que obtuvimos las credenciales para Twitter, utilizar la libreria es muy sencilla
auth = tweepy.OAuthHandler(consumer_api_key, consumer_api_secret_key)
auth.set_access_token(access_token, access_token_secret)
twitter_api = tweepy.API(auth)
# Enviar un Tweet
twitter_api.update_status("Hola Granola")
- Bien Hecho!
Marvel API
Los queridisimos amigos de Marvel tienen una API publica muy interesante con toda la base de datos de su maravilloso mundo. Y de nuevo, super sencillo de utilizar, el "how to" esta en este link.
Quizas lo unico mas complejo es crear el hash md5 que se tiene que agregar en cada llamada, pero de nuevo, con python y un par de librerias estandar es super simple.
import hashlib
import requests
import time
# 1. Obtener public y private key del sitio de Marvel
public_key = '<Marvel Public Key>'
private_key = '<Marvel Private Key>'
# 2. Definir un timestamp para ejecutar la llamada
ts = str(time.time())
# 3. Creamos el hash md5 con el lineamiento que nos indico Marvel
# ts - a timestamp (or other long string which can change on a request-by-request basis)
# hash - a md5 digest of the ts parameter, your private key and your public key (e.g. md5(ts+privateKey+publicKey)
hash_code = hashlib.md5(f'{ts}{private_key}{public_key}'.encode('utf-8')).hexdigest()
# 4. Llamar a algun endpoint indicado en la documentaction. Por ejemplo el de personajes
marvel_url = f'http://gateway.marvel.com/v1/public/characters?ts={ts}&hash={hash_code}&apikey={public_key}'
# Listo!
response = requests.get(marvel_url)
Twitteando como un campeon
Ahora si, tenemos una forma de twittear desde un script, y una fuente de datos para escribir cosas interesantes. Solo resta combinar ambas cosas, y armar un Twitt con algo de sentido.
Voy a pasar por alto como dejar corriendo el bot, y como estructurar el codigo porque creo que con esto viene lo lindo de armar cosas a gusto propio, pero de todas maneras abajo dejo links del repo que hoy esta twitteando esto:
[twitter https://twitter.com/marvelibot/status/1272970289970888707]
Y la IA ?
Pensamiento super corto, y casi una filosofia barata y zapatos de goma, pero, cuando empece a hacer unas pruebas con el bot arme unos twitts con algo de informacion, y agregando una pregunta del estilo:
Did you know about <Aqui va un personaje>?
Y entre esos twitts recibi una mencion, que era una respuesta automaica de otro bot. Con lo que mi corazon ñoño se emociono un poco al pensar en una pequeña escala, algo parecido a lo que le habia pasado a la IA de la pelicula HER en el momento que se "van" con otras IAs a leer, aprender, discutir de cosas en tiempos que para la vida humana serian imposibles.
En fin, como dije, pensamiento muy cortito pero que se genero probando cosas muy simples, y cuya documentacion esta disponible para todo mundo en nuestra biblioteca de Alejandria moderna.
Adios!
Links
- Repo con los ejemplos del post darkaico/python-fun
Repo del bot darkaico/marvel-bot
- Repo del bot de star-wars fermezz/starwars-bot
- Tweepy library https://www.tweepy.org/
- Marvel API https://developer.marvel.com/docs