【发布时间】:2020-07-04 23:59:09
【问题描述】:
我想从响应中获取回调数据,但数组为空。
我试图在消息callback_data 数组中显示。
这是我的代码:
$botToken = "token";
$botAPI = "https://api.telegram.org/bot" . $botToken;
$update = json_decode(file_get_contents('php://input'), TRUE);
$message = $update["message"]["text"]
$chatId = $update["message"]["chat"]["id"];
$callback_query = $update['callback_query'];
$callback_query_data = $callback_query['data'];
$url = $botAPI . '/sendMessage?chat_id=' . $chatId . '&text=';
if(isset($callback_query)){
file_get_contents($url . $callback_query_data);
}
if($message == "/start"){
$parameters = array('chat_id' => $chatId, "text" => "Здравствуйте. Выберите язык. \nАссалом. Забонро интихоб кунед.\nHi! Select your language.");
$parameters["method"] = "sendMessage";
$keyboard = ['inline_keyboard' => [[
['text' => "????????Точики", 'callback_data' => 'tajik'],
['text' => "????????Русский", 'callback_data' => 'russian'],
['text' => '????????English', 'callback_data' => 'english']
]]];
$parameters["reply_markup"] = json_encode($keyboard, true);
echo json_encode($parameters);
}
【问题讨论】:
-
if(isset($callback_query))使您使用它的方式变得零意义。 当然这个变量总是设置在这一点上 - 你自己在代码的前四行做了那四行。 -
if($message == "/start")–$message是什么,它应该是从哪里来的? -
@CBroe 我忘了写。
$message = $update["message"]["text"]。那么如何打印callback_query? -
什么意思,如何“打印”?如果您不确定是否会设置
$update['callback_query'],在您从外部收到的数据中 - 那么您需要检查那个,而不是完全不同的东西。 -
@CBroe 检查什么?
$update['callback_query],我说的对吗?
标签: php telegram-bot php-telegram-bot