Header Ads Widget

Ticker

6/recent/ticker-posts

Una guía para principiantes para construir un bot de Slack en PHP



Como una de las plataformas de mensajería instantánea más populares, Slack se ha hecho un nombre en el espacio de ChatOps gracias a su popularidad existente y a una extensa lista de integraciones. Entonces, ¿qué tan fácil es construir tu propio bot? En este artículo, lo guiaremos a través de los conceptos básicos para construir un bot de Slack usando PHP. No solo eso, sino que también discutiremos algunas de las muchas funcionalidades que puede incluir en su bot. Finalmente, veremos una breve comparación de las experiencias de los desarrolladores de Telegram y Slack cuando se trata de construir chatbots.

Lo primero es lo primero

El primer paso para crear un bot de Slack es registrarlo. En Slack, los bots pertenecen a la categoría más amplia de "aplicaciones", que se pueden registrar en api.slack.com/apps . Simplemente haga clic en "Crear nueva aplicación", asigne un nombre a su aplicación y elija el espacio de trabajo de Slack donde querrá probar su bot durante el desarrollo.

La base de cualquier chatbot es poder leer los mensajes entrantes, así que comencemos con la configuración. A diferencia de otras API de servicios de mensajería instantánea, que envían un updateobjeto cada vez que sucede algo en un chat, la API de Slack le informa solo sobre los eventos a los que se suscribe. Para suscribirse a un evento, abra la sección "Agregar características y funcionalidad" en la página de su aplicación y haga clic en "Suscripciones a eventos".

Antes de que pueda suscribirse a cualquier evento, deberá elegir y verificar la URL en la que desea recibir la notificación. Simplemente ingrese la URL deseada en el formato https://www.YourDomain.com/YourCodeFile.phpSlack enviará una carga útil JSON que contiene un parámetro a esa URL y su trabajo es enviarles ese valor directamente.https : // www TuDominio com YourCodeFile php . Slack enviará una carga útil JSON que contiene unchallenge

Aquí está el código que usamos para lograr esto:


Suscripción a eventos

Una vez que haya verificado correctamente la URL, abra la sección "Suscribirse a eventos de bot". Aquí es donde puede convertir su "aplicación" en un "bot" dándole un nombre para mostrar y un nombre de usuario.

A continuación, podrá elegir a qué eventos suscribirse. Por ahora, simplemente agregue el message.channelsevento, que se activa cada vez que se envía un mensaje a un canal, y presione "Guardar cambios" en la parte inferior de la página.

Ahora, hay otra cosa que hacer antes de que esos eventos de mensajes se envíen a nuestra URL elegida. Es decir: debe solicitar algunos ámbitos de OAuth. En el menú del lado izquierdo, navegue hasta "OAuth y permisos". En la mitad de la página, puede agregar los ámbitos que necesitará su aplicación.

Después de consultar la documentación del message.channelsevento , deberá solicitar el channels:readalcance para poder leer los mensajes entrantes. Mientras lo hace, solicite el chat:write:botalcance, que le permitirá enviar mensajes más adelante.

En esa misma página, haga clic para reinstalar su aplicación en el espacio de trabajo, lo que lo llevará a través de un proceso de delegación de OAuth y, en última instancia, le dará a su bot los permisos que acaba de solicitar. Finalmente, tome nota del token de acceso proporcionado en esa página.

Responder a un mensaje

Con toda esa preparación hecha, comencemos a construir nuestro bot. Hace apenas un segundo, nos suscribimos al message.channelsevento, que nos envía una carga útil JSON del siguiente formato cada vez que se envía un nuevo mensaje:

{
    "token": "one-long-verification-token",
    "team_id": "T061EG9R6",
    "api_app_id": "A0PNCHHK2",
    "event": {
        "type": "message",
        "channel": "C024BE91L",
        "user": "U2147483697",
        "text": "Live long and prospect.",
        "ts": "1355517523.000005",
        "event_ts": "1355517523.000005",
        "channel_type": "channel"
    },
    "type": "event_callback",
    "authed_teams": [
        "T061EG9R6"
    ],
    "event_id": "Ev0PV52K21",
    "event_time": 1355517523
}

Al menos por ahora, esta respuesta solo contiene realmente dos campos interesantes: channeltextchannelnos dice a qué canal se envió el mensaje y textnos dice el contenido de ese mensaje.

Para probar con qué tenía que trabajar, utilicé el chat.postMessagepunto final para crear un script simple que repetiría todo lo que dijera un usuario. Así es como se ve ese código:


…¡Y funcionó! El único problema fue que este código fue activado por todos los mensajes enviados a un canal, incluidos los enviados por el propio bot:

Después de escuchar cinco minutos de ping, terminé editando un error en mi archivo de código para matar el ciclo interminable. ¡Ciertamente no es mi momento de mayor orgullo!

A dónde ir después

En esta guía, no pasaremos por el proceso de creación de un bot "útil" por el simple hecho de hacerlo. Has visto cómo recibir notificaciones sobre mensajes nuevos y cómo responderlos; Depende de usted completar los espacios en blanco con su lógica empresarial.

Lo que haremos es hablar sobre algunas de las otras funcionalidades que puedes incorporar a tu bot. Para empezar, hay una gran variedad de eventos que puede utilizar para activar la lógica empresarial: member_joined_channelle indica cuándo un nuevo usuario se une a un canal, file_createdle indica cuándo se carga un archivo en un canal y reaction_addedle indica cuándo un usuario reacciona a algo. Vea la lista completa de eventos a los que puede participar aquí .

También querrá conocer los diferentes métodos a los que puede llamar para interactuar con Slack. chat.postMessagees definitivamente el más útil, pero hay muchas más con las que podría querer experimentar: chat.postEphemeralenvía un mensaje visible para un solo usuario, dnd.setSnoozeestablece el estado de un usuario en "No molestar" e im.openinicia una conversación directa.

Lea también:  Creación de un bot inteligente con la API de Slack

API de Telegram vs API de Slack: Experiencia de desarrollador

Una cosa que teníamos curiosidad por entrar en este tutorial era cómo se compararía Slack con Telegram en términos de experiencia de desarrollador . Personalmente, nos pareció más fácil (y rápido) lanzar un bot de Telegram. Esto fue en gran parte el resultado de toda la autenticación que Slack requiere: cada vez que desee suscribirse a un nuevo evento o llamar a un nuevo punto final, debe buscar y agregar todos los ámbitos apropiados y luego reinstalar su aplicación.

Tenemos que felicitar a Slack por su documentación, que proporciona exactamente lo que necesita (en un formato fácil de consumir) cuando se trata de definiciones de eventos y métodos.

Mira:  Cómo construir un bot de Telegram usando PHP en menos de 30 minutos

Pensamientos finales

Crear un bot de Slack es como crear un bot de Telegram: te preparas para recibir actualizaciones / eventos, los procesas y luego envías algún tipo de solicitud a la API. Aunque no creamos un bot “útil” y que funcione completamente para los propósitos de este tutorial, todavía le muestra lo fácil que es integrar la lógica de su negocio en un servicio de mensajería instantánea moderno. ¡Buena suerte construyendo!


Publicar un comentario

0 Comentarios