电报机器人键盘按钮
Telegram Bot Keyboard Button
我在使用 Telegram 键盘时遇到问题,我想在我的数组中发送一个带有“#”标记的字符串
但是用“#”它不工作
我访问了一个与我相同的机器人,它运行良好并在键盘按钮
中显示“#”
我该如何解决这个问题?
$string = "#number 1";//This #
$markup[] = [
["text" => $string ]
];
$keyboard = [
"keyboard" => $markup,
"resize_keyboard" => true
];
return $r = file_get_contents("https://api.telegram.org/bot" . TOKEN . "/sendMessage?chat_id="
. $chat_id . "&text=" . urlencode("MENU") . "&reply_markup=" . json_encode($keyboard));
#
会干扰请求 url.
您应该转义它以防止出现这种情况。
最简单的解决方案是对包含任何特殊字符的文本使用 php's urlencode()
函数:
<?php
$chat_id = ;
CONST TOKEN = '';
$keyboard = [
"keyboard" => [
[
["text" => urlencode('Test -> #') ]
]
],
"resize_keyboard" => true
];
return file_get_contents("https://api.telegram.org/bot" . TOKEN . "/sendMessage?chat_id="
. $chat_id . "&text=" . urlencode("MENU") . "&reply_markup=" . json_encode($keyboard));
将产生:
我在使用 Telegram 键盘时遇到问题,我想在我的数组中发送一个带有“#”标记的字符串 但是用“#”它不工作 我访问了一个与我相同的机器人,它运行良好并在键盘按钮
中显示“#”我该如何解决这个问题?
$string = "#number 1";//This #
$markup[] = [
["text" => $string ]
];
$keyboard = [
"keyboard" => $markup,
"resize_keyboard" => true
];
return $r = file_get_contents("https://api.telegram.org/bot" . TOKEN . "/sendMessage?chat_id="
. $chat_id . "&text=" . urlencode("MENU") . "&reply_markup=" . json_encode($keyboard));
#
会干扰请求 url.
您应该转义它以防止出现这种情况。
最简单的解决方案是对包含任何特殊字符的文本使用 php's urlencode()
函数:
<?php
$chat_id = ;
CONST TOKEN = '';
$keyboard = [
"keyboard" => [
[
["text" => urlencode('Test -> #') ]
]
],
"resize_keyboard" => true
];
return file_get_contents("https://api.telegram.org/bot" . TOKEN . "/sendMessage?chat_id="
. $chat_id . "&text=" . urlencode("MENU") . "&reply_markup=" . json_encode($keyboard));
将产生: