Телеграмм: Запуск веб приложения из инлайн кнопки
Пытаюсь запустить веб сайт в телеграмме, это новая функциональность в нем. Работаю напрямую через апи, без сторонних библиотек. Ниже упрощенный кусочек кода.
$inline .= '[{"text":"'.$row['text'].'","web_app":{"url":"'.$row['val'].'"},"callback_data":"setitem_'.$toid.'"}]';
...
$inline = '{"inline_keyboard":['.$inline.']}';
sendMsg($bot['token'],$chatId,"Нажмите для запуска:", ["reply_markup"=>$inline]);
Веб страница не запускается, пробовал на https://yandex.ru
Делаю тоже через кнопку меню - всё работает:
if ($bot['menubtntext'] && $bot['menubtnurl']) {
$POST = [
'menu_button' => '{"type":"web_app","text":"'.tgescape($bot['menubtntext']).'","web_app":{"url":"'.$bot['menubtnurl'].'"}}'
];
}
$ch = curl_init($TgAPI.'bot'.strip_tags($bot['token']).'/setChatMenuButton');
curl_setopt_array($ch, array(
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $POST,
CURLOPT_TIMEOUT => 60
));
$output = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
Что я делаю не так?
Ответы (1 шт):
Автор решения: LeonidMew
→ Ссылка
callback_data не совместимо с web_app Вот так работает:
$inline[] = [['text'=>tgescape($row['text']), 'web_app' => ['url' => $row['val']]]];
$inline = '{"inline_keyboard":'.json_encode($inline).'}';
sendMsg($bot['token'],$chatId,"Нажмите для запуска:", ["reply_markup"=>$inline]);