Skip to content

Trabajo práctico de librerías útiles PHP.

Notifications You must be signed in to change notification settings

Blackpachamame/proyectobotman

 
 

Repository files navigation

PWD - PHP Trabajo Práctico Librerias Útiles

Tabla de contenido

Descripción 📋

Objetivo 📌

Deberá investigar y probar el uso (con ejemplos) de alguna librería en PHP, que resuelva un problema específico.

Pautas 📜

  • El trabajo se presentará en grupos con un máximo de 2 integrantes.
  • Deberá anunciar la librería elegida y los integrantes del grupo respondiendo al foro creado para tal fin. Las clases no se pueden repetir.
  • Se debe exponer y explicar la implementación del uso de la clase seleccionada.
  • Se entregarán las fuentes, una descripción de la clase y todo el material que puedan reunir.

Procedimiento 👣

BotMan

La librería php que elegimos es BotMan, el framework de chatbot más popular del mundo. BotMan es una librería de PHP que está diseñada para simplificar la tarea de desarrollar bots innovadores para múltiples plataformas de mensajería, incluyendo Slack, Telegram, Microsoft Bot Framework, Nexmo, HipChat, Facebook Messenger, WeChat y muchas más.

Requisitos 📚

Paso 1

Instalar BotMan

En nuestro caso, para realizar este tp no vamos a usar BotMan Studio, por lo que vamos a requerir de instalar Composer en primer lugar.

Luego, vamos a la documentación de instalación y abajo donde dice Installing BotMan nos figura el siguiente comando que pondremos en la terminal: composer require botman/botman

Esto nos va a generar una carpeta vendor, un archivo json y un archivo lock.

Para completar este paso, creamos un archivo php que va a ser nuestro controlador y pegamos el siguiente código:

<?php
use  BotMan\BotMan\BotMan;
use  BotMan\BotMan\BotManFactory;
use  BotMan\BotMan\Drivers\DriverManager;

$config  =  [
// Your driver-specific configuration
// "telegram" => [
// "token" => "TOKEN"
// ]
];

// Load the driver(s) you want to use
DriverManager::loadDriver(\BotMan\Drivers\Telegram\TelegramDriver::class);

// Create an instance
$botman  =  BotManFactory::create($config);

// Give the bot something to listen for.
$botman->hears('hello', function  (BotMan $bot)  {
	$bot->reply('Hello yourself.');
});

// Start listening
$botman->listen();

Paso 2

Instalar Drive-Web

Seguimos la documentación sobre driver-web. Simplemente ponemos este comando en la terminal: composer require botman/driver-web Esto nos crea una nueva carpeta driver-web dentro de la carpeta botman y modifica el json agregando la versión de driver-web (dato irrelevante).

Por último, modificamos nuestro controlador y ponemos lo siguiente:

DriverManager::loadDriver(\BotMan\Drivers\Web\WebDriver::class);
// Create BotMan instance
BotManFactory::create($config);

Paso 3

Usamos Symfony Cache

Podemos encontrar información al final de esta documentación sobre caché.

De ahí vamos a Symfony Cache donde encontramos el siguiente comando: composer require symfony/cache Lo aplicamos y nos crea nuevas clases, luego volvemos a editar nuestro controlador con lo siguiente:

use BotMan\BotMan\Cache\SymfonyCache;
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
$adapter = new FilesystemAdapter();
$botman = BotManFactory::create($config, new SymfonyCache($adapter));

Finalmente nuestro controlador debería verse de la siguiente manera:

<?php require_once 'vendor/autoload.php';
use BotMan\BotMan\Cache\SymfonyCache;
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
use BotMan\BotMan\BotManFactory;
use BotMan\BotMan\Drivers\DriverManager;

$config = [];

DriverManager::loadDriver(\BotMan\Drivers\Web\WebDriver::class);

$adapter = new FilesystemAdapter();
$botman = BotManFactory::create($config, new SymfonyCache($adapter));

$botman->hears('Hola', function ($bot) {
	$bot->reply('Mundo');
});

$botman->fallback(function ($bot) {
	$bot->reply('Sorry, I did not understand these commands. Here is a list of commands I understand: ...');
});

// Start listening
$botman->listen();

Paso 4

Integrar BotMan a nuestro index usando Web Widget

Seguimos la documentación sobre web-widget. Creamos un nuevo archivo (ej: chat.html) y ponemos el siguiente enlace en el head: <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/botman-web-widget@0/build/assets/css/chat.min.css"> y este script: <script id="botmanWidget" src='https://cdn.jsdelivr.net/npm/botman-web-widget@0/build/js/chat.js'></script>. También es posible descargar esos archivos y personalizarlos en lugar de usar los cdn.

Para terminar solo agregamos el widget en la página que querramos:

<script>
  var botmanWidget = {
    frameEndpoint: "/iFrameUrl",
  };
</script>
<script src="https://cdn.jsdelivr.net/npm/botman-web-widget@0/build/js/widget.js"></script>

El archivo widget.js también se puede descargar y personalizar. En frameEndpoint hay que colocar la ruta al archivo del chat. Esto último se puede personalizar con el archivo widget.js.

Recursos útiles 👈

About

Trabajo práctico de librerías útiles PHP.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 93.7%
  • HTML 6.3%