- Nombre del grupo: Grupo 1
- Integrantes: Eugenia Garcia Ruiz y Marcos Andrés Travaglini
- Carrera: Tecnicatura Universitaria en Desarrollo Web
- Materia: Programación Web Dinámica
Deberá investigar y probar el uso (con ejemplos) de alguna librería en PHP, que resuelva un problema específico.
- 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.
- PHP >= 7.1.3
- Para BotMan Studio, consulte los requisitos de Laravel
- Composer
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();
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);
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();
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.