volkovecgenei
@volkovecgenei
...

Почему callback приходит несколько раз в telegram bot?

if (!empty($result['callback_query'])) {
    $chat_id = $result['callback_query']['from']['id']; 
    $callback_id = $result['callback_query']['id'];
    //file_get_contents("https://api.telegram.org/bot".$token."/answerCallbackQuery?callback_query_id=".$callback_id);
    
    $website="https://api.telegram.org/bot".$token;

    $params=[
      'callback_query_id'=>$callback_id,
      'text'=>'test',
    ];
    $ch = curl_init($website . '/answerCallbackQuery');
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, ($params));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $result_q = curl_exec($ch);
    curl_close($ch);
    
    $telegram->sendMessage([
      'chat_id' => $chat_id,
      'text' => "Here is the callback ". $result_q
    ]); 
  }

5d4a54cf572e4408402501.jpeg
Почему приходит несколько раз подряд, вроде возвразщаю answerCallbackQuery и должно сработать только раз?
  • Вопрос задан
  • 888 просмотров
Пригласить эксперта
Ответы на вопрос 2
@ar2rsoft
PHP-developer
Может до этого отправляли сообщения, колбек их не принял и они теперь доходят?

Очередь сообщений можно посмотреть в getWebhooks
Ответ написан
@rtmvnv
У меня такое получилось, когда неправильно передавал в запросе getUpdates() параметр offset.
https://core.telegram.org/bots/api#getupdates

И, конечно, при получении колбека надо отправлять запрос answerCallbackQuery.
https://core.telegram.org/bots/api#answercallbackquery
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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