我有一个通过电报机器人发送菜单的通用功能(如下面所示),但我不知道如何在这些菜单上添加图标(就像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);
}

发布于 2015-12-08 19:25:36
你应该使用表情符号,从这里取:
http://apps.timwhitlock.info/emoji/tables/unicode
单击Unicode列,您可以获得不同编码的值。
将表情符号字符串与您的消息连接起来,以生成键盘文本。
对于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"发布于 2015-12-09 01:18:04
在MyPokerBot中,我们使用符号和命令的关联列表。在检查“我们应该调用什么代码方法”的主循环中,它检查文本是否以该表情符号开头,并调用它的命令。
示例:
protected $shortCmds = [
Emoji::CMD_MAIN_MENU => '/start',
Emoji::CMD_STOP => '/stop',
];https://stackoverflow.com/questions/34134719
复制相似问题