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

Телеграм бот, inline_keyboard — не отправляет запроса webhook на сервер?

Отправляю запрос, подобный этому, и на сервер ничего не уходит в качестве webhook.
Использую aki/yii2-bot-telegram, но думаю ошибка не в нем. Не могу понять, как правильно отправить inline_keyboard.
при этом keyboard отправляется нормально.

$telegram->sendMessage([
            'chat_id' => $telegram->input->message->chat->id,
            'text' => 'Вы находитесь в главном меню',
            'reply_markup' => json_encode([
                'inline_keyboard' => [
                    [
                        [
                            'text' => 'refresh',
                            'callback_data' => 'LALALALA'
                        ]
                    ],
                    [
                        [
                            'text' => 'LALALALA',
                            'callback_data' => 'LALALALA'
                        ]
                    ]
                ],
  • Вопрос задан
  • 311 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
На чистом РНР (если закрыть все скобки в этом огрызке кода), все прекрасно отображается и отправляется.
$resp = [
            'chat_id' => $chat_id,
            'text' => 'Вы находитесь в главном меню',
            'reply_markup' => json_encode([
                'inline_keyboard' => [
                    [
                        [
                            'text' => 'refresh',
                            'callback_data' => 'LALALALA'
                        ]
                    ],
                    [
                        [
                            'text' => 'LALALALA',
                            'callback_data' => 'LALALALA'
                        ]
                    ]
                ]])];
$url = "https://api.telegram.org/bot$bot_token/sendMessage?".http_build_query($resp);
file_get_contents($url);

При условии, разумеется, что передается корректный chat_id. Но если будет неправильный chat id, то тогда клавиатура вообще не отобразится, и тогда именно это было бы проблемой, а не вебхук.

Попробуйте сначала сформулировать, с чего вы взяли, что "не отправляет запроса вебхук на сервер".

Но в целом, я предполагаю что главная ваша проблема, конечно же - в отсутствии логирования.
Я не представляю, как вообще люди берутся писать ботов без базового логирования, которое включает
1. Сырой инпут, который пришел на вебхук.
2. Сырой запрос, отправленный в телегу
3. Разумеется, все ошибки РНР.
4. Разное другое отладочное логирование.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽