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.
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.