
Crear un ChatBot inteligente con WhatsApp en Python (Gratis)
En este tutorial aprenderemos a crear un ChatBot inteligente con WhatsApp en Python totalmente gratis y con la plataforma oficial de WhatsApp (WhatsApp cloud API). La ventaja que tenemos al trabajar con la plataforma oficial es que la información que recibiremos y enviaremos será completamente fiable. Solo debemos seguir estos pasos:
Creamos una app en Facebook
O podemos aceder a este link Todas las apps – Meta for Developers (facebook.com)
Configuramos el Api de WhatsApp
Creamos nuestro host
Creamos una cuenta gratuita en Hosting made for everyone | alwaysdata
Subimos el código a nuestro host
Codigo de ChatBot inteligente con WhatsApp en Python
#ChatBot inteligente con WhatsApp en Python
from flask import Flask, jsonify, request
app = Flask(__name__)
#CUANDO RECIBAMOS LAS PETICIONES EN ESTA RUTA
@app.route("/webhook/", methods=["POST", "GET"])
def webhook_whatsapp():
#SI HAY DATOS RECIBIDOS VIA GET
if request.method == "GET":
#SI EL TOKEN ES IGUAL AL QUE RECIBIMOS
if request.args.get('hub.verify_token') == "HolaNovato":
#ESCRIBIMOS EN EL NAVEGADOR EL VALOR DEL RETO RECIBIDO DESDE FACEBOOK
return request.args.get('hub.challenge')
else:
#SI NO SON IGUALES RETORNAMOS UN MENSAJE DE ERROR
return "Error de autentificacion."
#RECIBIMOS TODOS LOS DATOS ENVIADO VIA JSON
data=request.get_json()
#EXTRAEMOS EL NUMERO DE TELEFONO Y EL MANSAJE
telefonoCliente=data['entry'][0]['changes'][0]['value']['messages'][0]['from']
#EXTRAEMOS EL TELEFONO DEL CLIENTE
mensaje=data['entry'][0]['changes'][0]['value']['messages'][0]['text']['body']
#EXTRAEMOS EL ID DE WHATSAPP DEL ARRAY
idWA=data['entry'][0]['changes'][0]['value']['messages'][0]['id']
#EXTRAEMOS EL TIEMPO DE WHATSAPP DEL ARRAY
timestamp=data['entry'][0]['changes'][0]['value']['messages'][0]['timestamp']
#ESCRIBIMOS EL NUMERO DE TELEFONO Y EL MENSAJE EN EL ARCHIVO TEXTO
#SI HAY UN MENSAJE
if mensaje is not None:
f = open("texto.txt", "w")
f.write(mensaje)
f.close()
#RETORNAMOS EL STATUS EN UN JSON
return jsonify({"status": "success"}, 200)
#INICIAMSO FLASK
if __name__ == "__main__":
app.run(debug=True)
Ave que vuela, a la cazuela.