Saltar al contenido

Construye un robot de cita de los Simpsons con Twilio y Python.

Es hora de empezar a construir nuestra aplicación. Sólo necesitamos un archivo, así que navega a un directorio de tu elección y abre un nuevo archivo llamado frinkiac.py en tu editor preferido.

En la parte superior de este archivo agregue las siguientes líneas:

Construye un robot de cita de los Simpsons con Twilio y Python.
Construye un robot de cita de los Simpsons con Twilio y Python.
12345678 programa de importación solicitudes de importación de twilio. rest import TwilioRestClienfrom twilio import TwilioRestExceptionaccount_sid =$0027XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$0027auth_token =$0027YYYYYYYYYYYYYYYYYYYYYYYYYY$0027client = TwilioRestClient(account_sid, auth_token)

pitón

Las primeras cuatro líneas del código de arriba son simplemente para importar todas las bibliotecas que acabamos de instalar. Las tres líneas después de nuestras importaciones configuran y crean un objeto TwilioRestClient que nos permitirá hacer llamadas a la API Twilio REST. Asegúrate de reemplazar los valores de account_sid y auth_token con el SID de tu cuenta y el token de autenticación. Puedes encontrar estos valores en el panel de control de tu cuenta de Twilio.

Nota importante : Nunca envíes código con tus credenciales de la API a un repositorio público. Consulta la sección «Pasos opcionales» al final de este post para un enfoque alternativo al uso de tus claves de la API de Twilio.

A continuación, añada la siguiente función a su aplicación:

123456789101112defget_quote(): r = requests.get("https://frinkiac.com/api/random")if r.status_code ==200: json = r.json()# Extraer el número de episodio y la marca de tiempo del # de respuesta de la API y convertir ambos en cadenas. timestamp, episodio, _ =map(str, json["Frame"].values()) image_url ="https://frinkiac.com/meme/"+ episodio +"/"+ timestamp # Combina cada línea de subtítulos en una cadena. caption ="
".join([subtitle["Contenido"]para el subtítulo en json["Subtítulos"]])return image_url, caption

pitón

La función que acabamos de añadir utiliza peticiones para enviar una solicitud GET a Frinkiac y recuperar datos sobre un momento aleatorio de los Simpsons. Aunque Frinkiac no es en realidad una API, todo el sitio está basado en la reacción y obtiene recursos a través de HTTP. Por lo tanto, podemos usar el sitio de la misma manera que usaríamos una API. A continuación, convertimos nuestros datos recuperados en JSON, extraemos la marca de tiempo y el código del episodio, y convertimos estos dos componentes en formato de cadena. La marca de tiempo y el episodio se utilizan para crear la URL que apunta a una captura de pantalla del momento aleatorio de los Simpson. Finalmente, tomamos el contenido de cada línea de subtítulos en nuestro JSON y los unimos para formar el subtítulo.

Ahora añade la única otra función que necesitamos:

123456789101112defsend_MMS(): media, body = get_quote()try: message = client.messages. create( body=body, media_url=media, to="+12345678901",# Reemplaza con tu número de teléfono from_="+12345678901")# Reemplaza con tu número de Twilioprint("Message sent!")# Si ocurre un error, imprímelo.except TwilioRestException como e:print(e)

pitón

Esta función comienza llamando a la función get_quote que creamos en el paso anterior y almacenando sus valores de retorno. El bloque try/except de arriba fue adaptado de la documentación de inicio rápido de Twilio en Python. Estas líneas simplemente toman una serie de parámetros y los convierten en una llamada a la API REST de Twilio.

Reemplaza los parámetros de ida y vuelta con tu número de teléfono real y tu número de teléfono de Twilio, respectivamente. Si se produce un error durante la llamada al API se imprimirá en la terminal.

Ahora en la parte inferior de nuestro archivo, debajo de las dos funciones que acabamos de añadir, inserte las siguientes tres líneas:

1234programación.cada().día.a("12:00").do(send_MMS)whileTrue: programación.ejecución_pendiente()

pitón

El programa permite establecer la frecuencia con la que una función se ejecuta de una manera muy legible. El programa se ejecutará dentro de un bucle de tiempo que continuará en bucle indefinidamente. Nuestra aplicación se comportará ahora de acuerdo con el horario, lo que significa que send_MMS será llamado todos los días a las 12:00 p.m. indefinidamente o hasta que salgas de la aplicación.