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'
                        ]
                    ]
                ],
  • Вопрос задан
  • 156 просмотров
Решения вопроса 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. Разное другое отладочное логирование.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы