Callback query телеграм php?
я использую https://github.com/irazasyed/telegram-bot-sdk
include('vendor/autoload.php');
use Telegram\Bot\Api;
use Telegram\Bot\Keyboard\Keyboard;
$api = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$telegram = new Api($api);
$result = $telegram->getWebhookUpdates();
$result = json_decode($result, True);
$text = $result["message"]["text"];
$chat_id = $result["message"]["chat"]["id"];
$update = Telegram::commandsHandler(true);
$query = $update->getCallbackQuery();
$callback_id = $query->getId();
if($text == '/start' OR $text == $backbutton){
$inline_keyboard = Keyboard::make(['resize_keyboard' => true])
->row(
Keyboard::inlineButton(['text' => "Қазақша",'callback_data' => "kaz"]),
Keyboard::inlineButton(['text' => "Русский",'callback_data' => 'rus']),
);
$telegram->sendMessage([
'chat_id' => $chat_id,
'text' => 'xxxxxx',
'parse_mode' => 'HTML',
'reply_markup' => $inline_keyboard,
]);
}
if($callback_id == 'kaz') {
$inline_keyboard_one = Keyboard::make(['resize_keyboard' => true])
->row(
Keyboard::inlineButton(['text' => '123','callback_data' => "prod"]),
);
$telegram->sendMessage([
'chat_id' => $chat_id,
'text' => 'xxxxxx',
'parse_mode' => 'HTML',
'reply_markup' => $inline_keyboard_one,
]);
}
не работает помогите плиз?????
Ответы (1 шт):
Автор решения: PunyFlash
→ Ссылка
Попробуйте westacks/telebot:
<?php
require 'vendor/autoload.php';
use WeStacks\TeleBot\Objects\Update;
use WeStacks\TeleBot\TeleBot;
$bot = new TeleBot('123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11');
// Start command
$bot->addHandler(function (Update $update) use ($bot) {
if (!$message = $update->message()) return;
if ($message->text != '/start') return;
return $bot->sendMessage([
'chat_id' => $update->chat()->id,
'text' => 'Test',
'reply_markup' => [
'inline_keyboard' => [[
['text' => "Қазақша", 'callback_data' => "lang:kaz"],
['text' => "Русский", 'callback_data' => 'lang:rus'],
]]
]
]);
});
// Language callback
$bot->addHandler(function (Update $update) use ($bot) {
if (!$query = $update->callback_query ?? false) return;
if (!str_contains($query->data, 'lang:')) return;
$lang = explode(':', $query->data)[1];
return $bot->answerCallbackQuery([
'callback_query_id' => $query->id,
'text' => 'Your language is: ' . $lang,
'show_alert' => true
]);
});
// Handling bot updates
echo 'Bot is working...'.PHP_EOL;
$last_offset = 0;
while (true) {
$updates = $bot->getUpdates([
'offset' => $last_offset + 1
]);
foreach ($updates as $update) {
echo "Update recieved: $update->update_id" . PHP_EOL;
$bot->handleUpdate($update);
$last_offset = $update->update_id;
}
}