SowerPHP

Framework PHP hecho en Chile

Herramientas de usuario

Herramientas del sitio


howto:bot_telegram

Bot de Telegram

Aquí se explica como crear un Bot para Telegram que muestre el mensaje “Hola Mundo”. Se hace desde 0 para mostrar lo básico que permite hacer el framework.

La forma de usar el bot será a través de webhook.

Instalar SowerPHP

Instalar framework con sus extensiones, se requiere extensión app y general:

$ wget https://raw.githubusercontent.com/SowerPHP/sowerpkg/master/sowerpkg.sh
$ ./sowerpkg.sh install -e "app general" -d $HOME/public_html/bot -W

En este ejemplo, el directorio del proyecto del Bot es $HOME/public_html/bot/project en este se harán todos los cambios necesarios.

Si tienes el framework ya instalado, puedes copiar el proyecto solamente y compartir la instalación.

Crear el Bot

Crea el bot con @BotFather, copia el token asignado y crea la siguiente configuración en website/Config/core.php:

\sowerphp\core\Configure::write('telegram', [
    'MiBot' => [
        'bot' => 'MiBot', // Nombre de usuario del Bot
        'token' => '', // Totek entregado por BotFather
    ]
]);

Edita website/webroot/index.php y agrega las extensiones para que quede así:

$_EXTENSIONS = ['sowerphp/app', 'sowerphp/general'];

Creamos el archivo website/Controller/Bot.php con el contenido:

<?php
namespace website;
class Controller_Bot extends \sowerphp\app\Controller_Bot
{
    protected function _bot_start($token = null)
    {
        $this->Bot->send('Hola Mundo!');
    }
}

La clase Controller_Bot es el Bot en sí, cada método del tipo _bot_COMANDO es un comando que se puede ejecutar en el Bot. Los parámetros son pasados al método de la misma forma que son pasados un argumento a un programa de la terminal, o sea, separados por espacio.

Ahora habilitamos el webhook para el Bot, para esto ir al enlace:

https://api.telegram.org/bot<token>/setWebhook?url=https://example.com/api/bot/telegram/<id_bot>

Reemplaza example.com por la dirección que usas para acceder al proyecto creado. Además reemplazar <token> por el token/ entregado por BotFather. El <id_bot> corresponde a los números que están en el token antes del : Listo :-) Ahora en Telegram habla al Bot, al enviar “Iniciar” dirá “Hola Mundo!”.

howto/bot_telegram.txt · Última modificación: 2016/04/14 16:43 por delaf