Telegram Bot Callback-Query не отправлен - PullRequest
0 голосов
/ 10 февраля 2019

Я создал 2 Inline-Button и хочу оценить callback_data.Но, к сожалению, callback_data не отправляется.

<?php
$bot_token = 'There is no Token seen'; // Telegram bot token
$url = "https://api.telegram.org/bot$bot_token/sendMessage";
$content = file_get_contents('php://input');
$update = json_decode($content, TRUE);
$callback_query = $update['callbackQuery'];
$callback_data = $callback_query['data'];

$ser_update = serialize($update);
db_query("INSERT INTO prefix_telegram (text) VALUES ('".$ser_update."')");

if (isset($update['message']['text'])) {
    $text    = $update['message']['text'];
    $chat_id = $update['message']['chat']['id'];

    if (strpos($text, 'outi') !== false) {
        $reply = utf8_encode("Wähle einen Button!");
        $keyboard = array(
            "keyboard" =>   array(
                                    array(
                                        array(
                                            "text"  => "Button1",
                                            "callback_data" => "1",
                                        ),
                                        array(
                                            "text"  => "Button2",
                                            "callback_data" => "2",
                                        ),
                                    )
                                ),
                                "one_time_keyboard" => true,
                                "resize_keyboard" => true
        );

        $postfields = array(
            'chat_id'       => "$chat_id",
            'text'          => "$reply",
            'reply_markup'  => json_encode($keyboard)
        );

        if (!$curld = curl_init()) {
            exit;
        }

        curl_setopt($curld, CURLOPT_POST, true);
        curl_setopt($curld, CURLOPT_POSTFIELDS, $postfields);
        curl_setopt($curld, CURLOPT_URL,$url);
        curl_setopt($curld, CURLOPT_RETURNTRANSFER, true);

        $output = curl_exec($curld);

        curl_close ($curld);
    }
}

Результат file_get_contents

Может ли кто-нибудь помочь мне с этой проблемой?Я отправил больше информации, чем просто текст нажатой кнопки.Спасибо! * * 1008

1 Ответ

0 голосов
/ 03 марта 2019

Нужно исправить.В строке 7 это $callback_query = $update['callback_query'];
От строки 19 до 34:

$keyboard = array(
  "inline_keyboard" => array( // inline_keyboard not keyboard
    array(
      array( 
        "text" => "Button1", 
        "callback_data" => "1", 
      ), 
      array( 
        "text" => "Button2", 
        "callback_data" => "2", 
      ), 
    )
  ) //Removed onetimekeyboard etc.
);

От 36 до 40:

$postfields = array( 
  'chat_id' => $chat_id, // you don't have to use quotes when you're using variables or numbers.
  'text' => $reply, 
  'reply_markup' => json_encode($keyboard) 
);
...