Herramientas de usuario

Herramientas del sitio


informatica:programacion:php:snippets:telegram

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
informatica:programacion:php:snippets:telegram [2021/06/23 15:04] – creado tempwininformatica:programacion:php:snippets:telegram [2021/11/30 15:05] (actual) tempwin
Línea 1: Línea 1:
 ====== PHP Snippets: Telegram ====== ====== PHP Snippets: Telegram ======
 +
 +===== Enviar mensajes =====
 +
 +El siguiente código hará que un bot previamente creado (''BOT_TOKEN'') envíe un mensaje a un usuario que haya iniciado una conversación con él (''CHAT_ID'').
  
 <code php> <code php>
Línea 5: Línea 9:
 define('CHAT_ID', 123456); define('CHAT_ID', 123456);
  
 +// API de Telegram para realizar el envío del mensaje a través del bot
 $api_url = "https://api.telegram.org/bot" . BOT_TOKEN; $api_url = "https://api.telegram.org/bot" . BOT_TOKEN;
  
Línea 37: Línea 42:
 </code> </code>
  
 +<WRAP center round important 60%>
 +Al usar la sintaxix MarkdownV2 con la API de Telegram, ciertos caracteres [[https://core.telegram.org/bots/api#markdownv2-style|deben ser "escapados"]]
 +</WRAP>
 +
 +
 +Otra opción más portable:
 +
 +<code php>
 +// Envía un mensaje a Telegram utilizando su API de bots
 +// (https://core.telegram.org/bots/api)
 +function enviar_telegram($id_chat, $mensaje, $token_bot = '', $silent = false) {
 + 
 +    // Modo de formato del texto
 +    $parse_mode = "MarkdownV2"; // html, Markdown, MarkdownV2
 + 
 +    $data = array(
 +        'chat_id'                  => $id_chat,
 +        'text'                     => $mensaje,
 +        'parse_mode'               => $parse_mode,
 +        'disable_web_page_preview' => true,
 +        'disable_notification'     => $silent
 +    );
 + 
 +    if($token_bot != '') {
 +      $ch = curl_init('https://api.telegram.org/bot' . $token_bot . '/sendMessage');
 +      curl_setopt_array($ch, [
 +          CURLOPT_HEADER         => 0,
 +          CURLOPT_RETURNTRANSFER => 1,
 +          CURLOPT_POST           => 1,
 +          CURLOPT_POSTFIELDS     => $data
 +      ]);
 +      curl_exec($ch);
 +      curl_close($ch);
 +    }
 +}
 +</code>
 +
 +  * [[http://www.unicode.org/emoji/charts/full-emoji-list.html|Lista de emoticonos para copiar y pegar]]
 +
 +==== Escapar caracteres para Markdown ====
 +
 +Al usar la sintaxix MarkdownV2 con la API de Telegram, ciertos caracteres [[https://core.telegram.org/bots/api#markdownv2-style|deben ser "escapados"]]. Con la siguiente función podemos aplicar estos cambios sobre un mensaje con formato Markdown para que pueda ser transmitido a través de la API de Telegram:
 +
 +<code php>
 +function escape_message_telegram($mensaje) {
 +    $escaped_message = str_replace(
 +        ['_', '*', '[', ']', '(', ')', '~', '>', '`', '#', '+', '-', '=', '|', '{', '}', '.', '!'],
 +        ['\_', '\*', '\[', '\]', '\(', '\)', '\~', '\>', '\`', '\#', '\+', '\-', '\=', '\|', '\{', '\}', '\.', '\!'],
 +        $mensaje
 +    );
 +    return $escaped_message;
 +}
 +</code>
informatica/programacion/php/snippets/telegram.1624453454.txt.gz · Última modificación: por tempwin