Задать вопрос
SHKD
@SHKD

Почему не срабатывает такой формат передачи ссылки в кнопку телеграм бота?

Приветствую!
Инфобот для телеги на пхп. При добавлении кнопок меню переходит по значению текст, а не по калбэк_дата. Как исправить?
Код:
function message_to_telegram($bot_token, $chat_id, $text, $reply_markup = '')
{
    $ch = curl_init();
    
    if ($reply_markup == '') {
        $btn[] = ["text"=>"О нас", "callback_data"=>'/about'];
        $btn[] = ["text"=>"Услуги", "callback_data"=>'/service'];
        $btn[] = ["text"=>"Контакты", "callback_data"=>'/contact'];
        $btn[] = ["text"=>"Заявка", "callback_data"=>'/order'];
        $reply_markup = json_encode(["keyboard" => [$btn],  "resize_keyboard" => true]);
    }
    
    $ch_post = [
        CURLOPT_URL => 'https://api.telegram.org/bot' . $bot_token . '/sendMessage',
        CURLOPT_POST => TRUE,
        CURLOPT_RETURNTRANSFER => TRUE,
        CURLOPT_TIMEOUT => 10,
        CURLOPT_POSTFIELDS => [
            'chat_id' => $chat_id,
            'parse_mode' => 'HTML',
            'text' => $text,
            'reply_markup' => $reply_markup,
        ]
    ];

    curl_setopt_array($ch, $ch_post);
    curl_exec($ch);
}
  • Вопрос задан
  • 158 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
mahmudchon
@mahmudchon
Ссылка передается в параметре url, не в callback_data. Это несколько другое.
Посмотрите документацию https://core.telegram.org/bots/api#inlinekeyboardmarkup
Ответ написан
Комментировать
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
репли кнопки устроены иначе, то что на ней написано (text) то и отправится. а ссылку можно вставить в инлайн кнопку через параметр url.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы