2015-12-07 4 views
1

У меня есть общая функция для отправки меню через боты телеграммы (например, ниже), но я не знаю, как добавлять значки в эти меню (как это делает mypokerbot, проверьте изображение). Любой намек?Телеграммы Боты - Как я могу создать меню «Ответить» со значками, такими как mypokerbot?

function SendGenericMenu ($chatid) { 
$lista=array("A", "B", "C"); 
$text="Choose:"; 
global $bottoken; 
$replyMarkup = array(
    'keyboard' => $lista, 
); 
$encodedMarkup = json_encode($replyMarkup); 
$content = array(
    'chat_id' => $chatid, 
    'reply_markup' => $encodedMarkup, 
    'text' => "$text" 
); 

$ch = curl_init(); 
$url="https://api.telegram.org/bot$bottoken/SendMessage"; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content)); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded')); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

// receive server response ... 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$server_output = curl_exec ($ch); 
curl_close ($ch); 
var_dump($server_output); 

} 

Example of Menu with icons on My Poker Bot

ответ

4

Вы должны использовать смайлик, принимая здесь:
http://apps.timwhitlock.info/emoji/tables/unicode
Нажатие на Unicode колонки вы можете получить значение в разных кодировках.

Конкатенируйте строку emoji со своим сообщением, чтобы создать текст на клавиатуре.
Для Java это будет:

String s = new String(new byte[]{(byte) 0xF0, (byte) 0x9F, (byte) 0x98, (byte) 0x81}, "UTF-8"); 

или

String s = "\uD83D\uDE4C" + "myKeyboardTest"; 

Для PHP Я думаю, что-то вроде этого:

"\xF0\x9F\x98\x81" . "your super keyboard" 
2

В MyPokerBot мы используем ассоциативный список смайликов и команды для них , В главном цикле проверки «какой метод кода мы должны называть» он проверяет, начинается ли текст с этого emoji и вызывает его команду.

Пример:

protected $shortCmds = [ 
    Emoji::CMD_MAIN_MENU  => '/start', 
    Emoji::CMD_STOP   => '/stop', 
]; 
+0

Вы создали MyPokerBot? Поздравления! Очень приятное приложение! –

1

Вы можете хранить все ваши смайликов в классе Emoji как константы как ihoru proposed и добавить их в качестве pengrad suggests. Однако вам необязательно хранить значения unicode emojis в константах. Вы можете скопировать emojis в качестве строк из, скажем, http://emojipedia.org/, и это должно хорошо работать и в некоторых IDE на некоторых операционных системах, например. Macs emojis будет фактически представлен в понятной для человека форме.

0

Очень простой способ написать сообщение об отбросе (не отправлять) в телеграмме с помощью эмози. затем скопируйте/вставьте этот текст (включая emoji) в свой код. Они будут копировать безупречно. Весь проспект показан на рисунке: Emoji Icons copy/paste

 Смежные вопросы

  • Нет связанных вопросов^_^