Introducción
Los bots de Webex, son aplicaciones que tienen una interfaz por la cual se puede interactuar mediante una conversación de texto, tarjetas, contenido multimedia y dependiendo su función puede ser una conversación 1:1, un espacio o múltiples espacios.
Requisitos
- Cuenta de Webex y acceso a developer.webex.com
- Servidor / Instancia con dirección IP publica y puerto 5005 abierto
- Python 3
Componentes Utilizados
La información que contiene esta guía se basa en las siguientes versiones de software
- Instancia Linux (almalinux 8.5) en la nube (Azure)
- Python 3.6.8
Configuración
Instalación de librerías
En la terminal de Linux:
pip3 install requests
pip3 install webexteamssdk
pip3 install flask
Crear el BOT
- Accede con tu cuenta de Webex a https://developer.webex.com/
- Crea una nueva aplicación >
Guarda (copia y pega en algún editor de textos) el token de acceso:
Configuración
Ejecuta el siguiente código una sola vez, usa tu token y el URL o direccion IP publica y puerto de tu instancia / servidor
import requests
import json
from webexteamssdk import WebexTeamsAPI, Webhook
from flask import Flask, request
BOT_TOKEN = "ODIxZmMtMyOGE0MWQ4NmYtMmQx_PF84_b2536220-1a37-4bc0-b154-201f3"
### Flask ###
app = Flask(__name__)
### Webex ###
webex = WebexTeamsAPI(access_token=BOT_TOKEN)
### Webhook ### solo se ejecuta una vez!
webhook_url = "http://tu-url-o-ip-publica:5005/"
webex.webhooks.create(name="Churro_wh", targetUrl=webhook_url, resource="messages", event="all")
Después comenta la linea:
#webex.webhooks.create(name="nombredelwh", targetUrl=webhook_url, resource="messages", event="all")
Una vez que se crea el WebHook, lanzamos la aplicación:
import requests
import json
from webexteamssdk import WebexTeamsAPI, Webhook
from flask import Flask, request
BOT_TOKEN = "g3ZS00MWI2LTg5YjItODAzZmM1YmJlOTIyOGE0MWQ4NmYtMmQ0-1a37-4bc0-b154-20"
### Flask ###
app = Flask(__name__)
### Webex ###
webex = WebexTeamsAPI(access_token=BOT_TOKEN)
### Webhook ### solo se ejecuta una vez!
webhook_url = "http://servidorUrl-ip:5005/"
#webex.webhooks.create(name="nombredelwh", targetUrl=webhook_url, resource="messages", event="all")
@app.route("/", methods=['POST', 'GET'])
def index():
if request.method == 'POST':
data_obj = Webhook(request.json)
#Get Message
message = webex.messages.get(data_obj.data.id)
#Get Space
chat_space = webex.rooms.get(data_obj.data.roomId)
chat_space = chat_space.id
#Get Person
persona = webex.people.get(message.personId)
churro = webex.people.me()
if message.text == 'Hola!' and message.personId is not churro:
saludo = 'Buen dia ' + persona.nickName
print(webex.messages.create(roomId=chat_space, text=saludo))
return "200"
### Run Flask ###
app.run(host='0.0.0.0', port=5005, use_reloader=True, debug=True)
Este bot responde al mensaje de 'Hola!'
agradecimiento a Sari Fernandez y Yanid Perez quienes colaboraron en este proyecto.