answerCallbackQuery telegram api

时间:2018-03-13 11:03:37

标签: laravel telegram

我将此扩展用于电报机器人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。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果您太晚回答请求,问题通常会发生。

E.g。您在Telegram应用程序中的12:00:00点击内联按钮,并且您的机器人在12:00:16调用answerCallbackQuery,那么callback_query_id将在那时失效。你得到“QUERYID_INVALID”错误大概15秒钟。

还要注意请求从Telegram服务器“旅行”到服务器并返回的时间。当消息离开Telegram服务器时,这15秒钟正在计数,当它到达那里时停止计数。