function processUpdate(Update $update) { $updateId = $update->updateId; printf("Got update #%d\n", $updateId); if (!empty($update->message)) { $message = $update->message; if (!empty($update->message->text)) { printf(" Got message: %s\n", $message->text); $button1 = (new InlineKeyboardButton('Go to GitHub'))->setUrl('https://github.com'); $button2 = (new InlineKeyboardButton('Switch to inline'))->setSwitchInlineQuery("test query"); $button3 = (new InlineKeyboardButton('Show text'))->setCallbackData('text'); $button4 = (new InlineKeyboardButton('Show alert'))->setCallbackData('alert'); $markupData = [[$button1, $button2], [$button3, $button4]]; $inlineReplyMarkup = new InlineKeyboardMarkup($markupData); if (!empty($message->from) && !empty($message->chat)) { switch ($message->chat->type) { case Chat::TYPE_PRIVATE: printf(" Sending answer to a user %s\n", $message->chat->id); $method = new SendMessage($message->chat->id, $message->text); $method->setReplyMarkup($inlineReplyMarkup); return $method; break; case Chat::TYPE_GROUP: case Chat::TYPE_SUPERGROUP: printf(" Inline keyboard is available only for private chats\n"); break; } } } } elseif (!empty($update->callbackQuery)) { $callbackQuery = $update->callbackQuery; printf(" CallbackQuery received:\n"); print_r($callbackQuery); $method = new AnswerCallbackQuery($callbackQuery->id); if ($callbackQuery->data == 'text') { $method->setText("Show text"); } elseif ($callbackQuery->data == 'alert') { $method->setShowAlert(true); $method->setText("Show alert"); } return $method; } return null; }
function processUpdate(Update $update) { $updateId = $update->updateId; printf("Got update #%d\n", $updateId); if (!empty($update->message)) { $message = $update->message; if (!empty($update->message->text)) { printf(" Got message: %s\n", $message->text); $replyMarkup = (new ReplyKeyboardMarkup([['Buttons', 'are', 'strings']]))->addKeyboardRow()->addKeyboardButton(new KeyboardButton('Object button 1'))->addKeyboardButton(new KeyboardButton('Object button 2'))->addKeyboardRow([(new KeyboardButton('Request contact'))->setRequestContact(true)])->addKeyboardRow([(new KeyboardButton('Request location'))->setRequestLocation(true)]); $replyMarkup->setResizeKeyboard(true)->setOneTimeKeyboard(true); if (!empty($message->from) && !empty($message->chat)) { switch ($message->chat->type) { case Chat::TYPE_PRIVATE: printf(" Sending answer to a user %s\n", $message->chat->id); $method = new SendMessage($message->chat->id, $message->text); $method->setReplyMarkup($replyMarkup); return $method; break; case Chat::TYPE_GROUP: case Chat::TYPE_SUPERGROUP: printf(" Sending answer to a chat %s\n", $message->chat->id); $method = new SendMessage($message->chat->id, $message->text); $method->setReplyToMessageId($message->messageId); $method->getReplyMarkup()->setSelective(true); return $method; break; } } } elseif (!empty($message->contact)) { printf(" Contact received:"); $dump = print_r($message->contact, true); echo $dump; $method = new SendMessage($message->chat->id, "Contact received:\n{$dump}"); $method->setReplyMarkup(new ReplyKeyboardHide()); return $method; } elseif (!empty($message->location)) { printf(" Location received:"); $dump = print_r($message->location, true); echo $dump; $method = new SendMessage($message->chat->id, "Location received:\n{$dump}"); $method->setReplyMarkup(new ReplyKeyboardHide()); return $method; } } return null; }