2

I want to know hot to read and save into a variable the text of a button that was clicked by a user who chat with my telegram bot.

PROBLEM:

I have this piece of code that helps me to take the webhook response for my bot.

$getupdates = file_get_contents("php://input");
$updates = json_decode($getupdates, TRUE);

then i save into a variable ($chatID) the chat_id of the user that chat with my bot and another variable $text is the text of the message.

Then i add this swtich

switch($text)
{
    case "/aggiungi":
    sendMessageButtons($chatID, "Sample text", $keyboard);
}

$keyboard is my array of array which contains my ReplyKeyboardMarkup keyboard.

My function "sendMessageButtons" is the following:

function sendMessageButtons($chatID, $message, $keyboard)
{
    $url = $GLOBALS['website']."/sendMessage?chat_id=".$chatID."&text=".urlencode($message)."&reply_markup=".$keyboard;
    file_get_contents($url);
}

The result is this.

But how can I know which button was clicked and then save the text of the button into a variable?

I tried to add code under the case

case "/aggiungi":
sendMessageButtons($chatID, "Sample text", $keyboard);
**$ButtonText = $updates["message"]["text"];
sendMessage($chatID, $ButtonText);**

but the result is this.

The bot return to "/aggiungi" case, print the last text on the screen (which is "/aggiungi") and it doesn't wait my input from the keyboard.

QUESTION:

How can I save the text that came from the button that was clicked?

I hope you understand the question and thank you all for your time!

Fede777
  • 21
  • 4
  • Take a look here - https://stackoverflow.com/a/44645591/4269118. Is it your case? I think it is similar. So try to use *ForseReply* – anatol Jul 13 '17 at 11:09

1 Answers1

0

use below code:

'inline_keyboard'=>[
        [
         ['text'=>"mt btn text",'callback_data'=>"bbv"]

        ]

then with if($data == "bbv"){do somthing} you can find which button is clicked.

Heisenberg
  • 46
  • 8