如何创建一个按钮,在不访问电报机器人 link 的情况下发出 http 请求

how to create a button that makes an http request without visting link on telegram bot

我正在尝试创建一个显示按钮的机器人。 单击按钮后,我希望用户无需实际访问 link.

即可完成请求

这是我当前的功能。

function show_button($db, $chatID, $id) {

$cols = $db->query("SELECT id, text FROM `texts` where id = '" . $id . "'");

$arry = array();

$chunks = array();
foreach($cols as $key => $value) {
    array_push($chunks, $value['id']);
}

$chunk_array = array_chunk($chunks, 1);

$arr = array(
    "inline_keyboard" => array()
);

foreach($chunk_array as $key => $value) {
    foreach($value as $nvalue) {
        array_push($arry, array(
            "text" => "Forward this:", //str_replace(' ', '%20', $nvalue)
            "url" => "www.somewebsite.org/huge.php")); //"I|" . str_replace(' ', '%20', $nvalue)
    }
    array_push($arr["inline_keyboard"], $arry);
    $arry = array();
}

$msg="Here is the button";

send_buttons($chatID, $msg, $arr);

}

出于明显的安全原因,无法在用户端完成。

但是,您可以使用 "callback_data"(而不是 "url")创建一个按钮,在您的服务器上执行此请求(您必须自己处理)。请记住,您不能通过回调数据字段传递长链接,因为它的大小仅限于 64 字节,您将不得不缩短链接或使用 ID 系统。