Telegram Botで絵文字を含むメッセージを送信する必要があります。
絵文字コードをコピーして貼り付けます:nine:
たとえば、メッセージテキストでユーザーに送信すると、絵文字は機能しませんでした。
これは私のサンプルコードと機能です。
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']);
だから、私の質問は次のとおりです。Telegramボットで絵文字を送信するにはどうすればよいですか。
絵文字のUnicode値を指定する必要があります。
これらは、雪だるまであるu '\ U000026C4'のような絵文字値として関数によって返されます。これはpythonですが、phpに適用できます。
私は数日前に同じ問題に直面しました。解決策は、この表のバイト(UTF-8)表記を使用することです。 http://apps.timwhitlock.info/emoji/tables/unicode
例:
????\xF0\x9F\x98\x81笑顔で笑顔の顔
????\xF0\x9F\x98\x89 WINKING FACE
Utf8バイトから作成できます。
絵文字リストとそのutf8コードを参照してください: http://apps.timwhitlock.info/emoji/tables/unicode
次のコードを使用して、utf8コードをテレグラム対応の応答テキストに変換します。
<?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;
$ emojiは、電報ボットの応答テキストで使用できます。
私はこのコードをlinux bashで使用しており、顔をニヤニヤさせるためにcurlコマンドを使用しています。
curl -X POST "https://api.telegram.org/botTOKEN/sendMessage" -d "chat_id=ID&text=%F0%9F%98%80&parse_modwarninge=Markdown"
実際の解決策は、 https://github.com/spatie/emoji (composer require spatie/emoji
)絵文字コードの場合。これでコードは次のようになります
Emoji::CHARACTER_EYES
または
Emoji::eyes()
これは本当に使用できるものです。すべてのコードを手動で記述し、一目でそれが何であるかを理解するのに苦労するのとは異なります。
私はこれに対する答えを長い間探していましたが、それを機能させることができませんでした。私のスクリプト作成スキルは貧弱で、PHPの回答をbashに変換することは難題でした。
しかし、それでも私はそれを最も簡単なソリューションで動作させました:私は電報デスクトップメッセンジャーに行き、そこに必要な絵文字(????)を送ります。
変数を作成したより:bus = "????"
これでcurlの変数を次のように使用できます: "text = some text $ bus"
これは、Linuxでbashを使用するとうまく機能します。PHPでも機能すると思います。
この回答への追加 https://stackoverflow.com/a/31431810/1114926 。
Mustafa が提供するリンクは、すべての絵文字を表すわけではありません。このソースの方が良い http://emojipedia.org/ ☝️。主な記号に加えて、絵文字のバリエーションがあります。