我将此扩展用于电报机器人api irazasyed。当我点击inlineKeyboard时,有醒来example的迹象。我添加了answerCallbackQuery方法来修复
$id = $request['callback_query']['id'];
$keyboard = new KeyboardController();
$keyboard->selectLanguage($chatid, $bot_name);
try{
$message = new SendMessageController();
$message->sendMessage($chatid,$id,$bot_name);
$telegram = new Api();
$telegram->answerCallbackQuery([
'callback_query_id' => $id,
]);
}
catch (\Exception $e)
{
$message = new SendMessageController();
$message->sendMessage($chatid,$e->getMessage(),$bot_name);
}
我收到消息$id
(来自try
)但来自阻止catch
我收到错误Bad Request: QUERYIDINVALID
。我该如何解决这个问题?
答案 0 :(得分:0)
如果您太晚回答请求,问题通常会发生。
E.g。您在Telegram应用程序中的12:00:00点击内联按钮,并且您的机器人在12:00:16调用answerCallbackQuery,那么callback_query_id将在那时失效。你得到“QUERYID_INVALID”错误大概15秒钟。
还要注意请求从Telegram服务器“旅行”到服务器并返回的时间。当消息离开Telegram服务器时,这15秒钟正在计数,当它到达那里时停止计数。