电报机器人键盘按钮

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.

您应该转义它以防止出现这种情况。

最简单的解决方案是对包含任何特殊字符的文本使用 '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));

将产生: