integrar-telegram-con-wordpress

Telegram, al igual que otros servicios de mensajería similares, han venido para quedarse con nosotros durante una buena temporada. No solo esto, sino que además, estos servicios de terceros, están cambiando la forma en la que nos relacionamos con otras aplicaciones, y servicios. Gracias a los bots, todo está cambiando muy rápidamente. Hoy en día, por ejemplo, no necesitas tener una aplicación de noticias en tu móvil, simplemente puedes sincronizarlas con un bot. De esta forma, cada vez que haya una nueva noticia te llegará un mensaje por Telegram. Y como este ejemplo, puedes encontrar miles de bots, con funcionalidades de las mas dispares. Y esto con bots, realizados por terceros ¿te puedes imaginar lo que podrías hacer tu con tu propio bot?. Si tu creas contenido contenido en la red, además de crearlo tienes que difundirlo. Y no nos engañemos, difundir tu contenido lleva su tiempo, que dependiendo de cada uno puede ser ma o menos tiempo. Pero que ¿te parece si pudieras difundir tu contenido sin dedicarle tiempo?. Pues eso es, precisamente, lo que vamos a ver en este nuevo capítulo del tutorial, como integrar Telegram con WordPress.

En mi caso particular, estoy siempre pensando la manera de automatizar todas mis tareas digitales (y las que no lo son). Últimamente y gracias a uGeek, sobre todo, lo que tiene que ver con la difusión de contenido. Y es que el tiempo que invierto en la difusión de contenido, no lo invierto en su creación. Y evidentemente, es mejor dedicarle tiempo a lo que realmente eres bueno, y dejar para un bot las tareas mecánicas. Evidentemente, una cosa es dejar que un bot haga las tareas mecánicas, y otra cosa es no relacionarse con los demás… no voy por ahí.

Procuro en la medida de lo posible publicar todas las semanas. Además, intento que las publicaciones vean la luz siempre los mismos días a las mismas horas, aunque no siempre consigo todo esto. Así, aprovecho, normalmente, los fines de semana para crear el contenido. Una vez creado el contenido, lo programa en WordPress para que salga los días que considero.

Ahora bien, si programo la publicación del contenido, también tengo que programar la difusión en redes sociales, en otro caso, no habría conseguido gran cosa claro. Algunas redes sociales, están automatizadas mediante aplicaciones de tercero. Pero, sinceramente, las que mas me interesan prefiero automatizarlas yo.

¿Porque crear tu propia automatización? La razón para crear tu propia automatización de tus redes sociales, y en particular, la razón para integrar Telegram con WordPress, es para darle tu toque personal. Y es que, aunque las automatismos de terceros te ahorrarán tiempo, el resultado, va a ser el mismo que el de otros cientos. Sin embargo, creando tu propia integración, vas a dar a cada mensaje tu impronta. Y sinceramente, porque dediques un tiempo del que te vas ahorrar en la difusión, en la creación de una buena integración no va a pasar nada, mas bien todo lo contrario.

Paso a paso…

Creando el bot

Una vez tienes claro la ventaja de crear tu propia automatización, vamos a ver como integrar Telegram con WordPress. Como verás a continuación, es algo relativamente sencillo, si tienes algo de idea de programación, y un poquito de conocimientos de WordPress y PHP.

Lo primero es crear nuestro bot en Telegram, para ello sigue los pasos del primer capítulo de este tutorial, titulado Exprimiendo Telegram. Crea tu propio bot para Telegram. Una vez realizado este primer paso tendremos el token que utilizaremos para las llamadas a Telegram.

Creando un complemento

Para tenerlo todo mas o menos organizado, vamos a crear un complemento que será el que posteriormente subiremos a nuestra instalación de WordPress. Otra opción sería poner el código en la el archivo functions.php del tema que estemos utilizando. El problema, como ya te habrás imaginado, es que si en un momento actualizamos el tema, perderemos todos los cambios introducidos.

Llamaremos a nuestro complemento intewo, por ejemplo, y estará compuesto de dos archivos,

  • intewo.php
  • inc/integracion.php

Aunque lo podríamos tener todo en un único archivo, prefiero organizarlo de esta manera, por si el día de mañana quieres ampliarlo con mas integraciones.

El contenido de intewo.php sería algo como lo que ves a continuación,

<?php

/*
Plugin Name: intewo
Plugin URI: https://www.atareao.es/
Description: A plugin to integrate Telegram with WordPess.
Version: 1.0
Author: Lorenzo Carbonell
*/

define ('__PLUGIN_DIR_PATH__', plugin_dir_path(__FILE__));
require_once(__PLUGIN_DIR_PATH__ . '/inc/integracion.php');

El segundo de los archivos, el interesante, está compuesto de varias funciones… Vamos a repasarlas una a una. La primera es http_post y es la que utilizaremos para enviar contenido. Esta función es com ves a continuación,

function http_post($url, $json)
{
    $ans = null;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url); 
    try
    {
        $data_string = json_encode($json);
        // Disable SSL verification
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
        // Will return the response, if false it print the response
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json',
            'Content-Length: ' . strlen($data_string))
        );
        $ans = json_decode(curl_exec($ch));
        if($ans->ok !== TRUE)
        {
            $ans = null;
        }
    }
    catch(Exception $e)
    {
        echo "Error: ", $e->getMessage(), "\n";
    }
    curl_close($ch);
    return $ans;
}

Partiendo de esta función básica, vamos a crear dos, una para enviar texto a Telegram, que será sendMessage, y será tal y como ves a continuación,

function sendMessage($chat_id, $text)
{
    global $URL;
    $json = ['chat_id'       => $chat_id,
             'text'          => $text,
             'parse_mode'    => 'HTML'];
    return http_post($URL.'/sendMessage', $json);
}

El momento de la integración

Con lo que hemos visto hasta ahora, ya tienes todas las piezas necesarias. Ha llegado el momento de integrar Telegram con WordPress, y para esto vamos a utilizar un hook, que es transition_post_status. Este se produce cada vez que un post cambia de estado. Así, por ejemplo, en nuestro caso, queremos que cada vez que se publica un post programado se envíe a un canal de Telegram. Para ello, tienes que hacer una función como la siguiente…

function post_published_notification( $new_status, $old_status, $post)
{
    if($old_status != 'publish' && $new_status == 'publish')
    {
        global $CHANNEL;
        // vars
        $title = $post->post_title;
        $ID = $post->ID;
        $permalink = get_permalink($ID);
        // msg
        $msg = "Nuevo artículo publicado, <a href='$permalink'>Title</a>";
        sendMessage($CHANNEL, $msg);
    }
}

Y por último tienes que añadir la función al hook. Para ello, tienes que añadir la siguiente línea,

add_action( 'transition_post_status', 'post_published_notification', 10, 3);

Si te has fijado, he dejado $URL y $CHANNEL como globales, para introducirlas al principio de este archivo. Aunque lo suyo sería que el usuario pudiera introducirlo a través de la configuración de WordPress, y modificarlo a su antojo.

Conclusión

Como ves integrar Telegram con WordPress es realmente sencillo, y nos permite hacer una mejor difusión. Podemos personalizar el mensaje hasta el más mínimo detalle. Esto, mismo podemos hacerlo tanto en grupo como en canales. Y por supuesto, también podemos hacerlo en varios grupos y canales. Esto es solamente la punta del iceberg de las posibilidades que nos abren los bots. Fijate lo cómodo que te hace la vida integrar Telegram con WordPress. Esta es una tarea de la que ya te puedes olvidar.

 

Fuente: atareao

¿Quién está en línea?

Hay 6992 invitados y ningún miembro en línea