emoticonos emojis bot php telegram-bot

php - emojis - ¿Cómo enviar Emoji con Telegram Bot API?



telegram emojis download (7)

Estoy usando este código en Linux bash y comando curl para cara sonriente

curl -X POST "https://api.telegram.org/botTOKEN/sendMessage" -d "chat_id=ID&text=%F0%9F%98%80&parse_modwarninge=Markdown"

Necesito enviar mensajes que contengan emoji con mi Telegram Bot.

Así que copio / pego el código emoji :nine: por ejemplo, en el texto de mi mensaje y lo envío a un usuario, PERO emoji no funcionó.

Este es mi código de ejemplo y función:

function tel_send($key, $t, $c) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.telegram.org/bot" . $key . "/sendMessage"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "cache=" . (time() / rand(1, time() - 100)) . "&text=" . $t . "&chat_id=" . $c); $ss = curl_exec($ch); curl_close($ch); return $ss; } tel_send($key, "My number - :nine:", $val[''message''][''chat''][''id'']);

Entonces, mi pregunta es: ¿Cómo puedo enviar emoji por Telegram bot?


He estado buscando una respuesta para esto durante mucho tiempo, pero no pude hacerlo funcionar. Mis habilidades de escritura son deficientes y convertir las respuestas de php a bash resultó ser un desafío.

Pero, sin embargo, lo conseguí trabajando con la solución más simple: fui al telegrama de escritorio para mensajería, allí envié el emoji requerido ().

Que hice una variable: bus = "🚌"

Ahora puedo usar la variable en el rizo como: "texto = algo de texto $ bus"

Esto funciona muy bien usando bash en linux, supongo que también podría funcionar en php.


La solución real es utilizar https://github.com/spatie/emoji (el composer require spatie/emoji ) para los códigos Emoji. Ahora su código se verá como

Emoji::CHARACTER_EYES

o

Emoji::eyes()

Esto es algo que realmente podrías usar. A diferencia de escribir todos los códigos manualmente y tener dificultades para entender qué es a primera vista.


Me enfrenté al mismo problema hace unos días. La solución es usar la notación de bytes (UTF-8) de esta tabla: http://apps.timwhitlock.info/emoji/tables/unicode

ejemplos:

😁 / xF0 / x9F / x98 / x81 GRINNING FACE CON OJOS SONRIENTES

😉 / xF0 / x9F / x98 / x89 WINKING FACE


Puedes crearlo desde utf8 bytes.

Vea la lista de emoji y sus códigos utf8 aquí: http://apps.timwhitlock.info/emoji/tables/unicode

Convierta los códigos utf8 en texto de respuesta listo para telegramas con el siguiente código:

<?php $EmojiUtf8Byte = ''/xF0/x9F/x98/x81''; $pattern = ''@///x([0-9a-fA-F]{2})@x''; $emoji = preg_replace_callback( $pattern, function ($captures) { return chr(hexdec($captures[1])); }, $utf8Byte ); $telegramResponseText = "Hey user " . $emoji;

El $ emoji se puede utilizar en textos de respuesta de bot de telegramas.


Una adición a esta respuesta https://.com/a/31431810/1114926 .

El enlace que proporcionó no representa todos los emoji. Esta fuente es mejor http://emojipedia.org/ ☝️. Tiene variaciones de emoji además del signo principal.


necesitas especificar el valor Unicode de Emoji.

Chequea aquí

estos son devueltos por una función como valor emoji como u ''/ U000026C4'' que es muñeco de nieve. Aunque está en Python, puedes aplicarlo para PHP.