californiamountainsnake / longmantelegrambot-inlinemenu
该软件包已被 弃用 并不再维护。未建议替代软件包。
longman/telegram-bot 库的内置菜单!
1.3.0
2021-03-15 14:29 UTC
Requires
- php: ^7.2
- ext-json: *
- ext-mbstring: *
- californiamountainsnake/longmantelegrambot-utils: ^1.1.4
- longman/telegram-bot: ~0.55
- myclabs/php-enum: ^1.5
Requires (Dev)
- ext-dom: *
- phpunit/phpunit: ^7.0
README
这是 longman/telegram-bot 库的内置菜单!
功能
- 带有子菜单的内置菜单。
- 通过内置按钮调用机器人命令。
- 提示信息!
安装
使用 Composer 需求此软件包
通过 Composer 安装此软件包。编辑您的项目 composer.json
文件以需求 californiamountainsnake/longmantelegrambot-inlinemenu
{ "name": "yourproject/yourproject", "type": "project", "require": { "php": "^7.3.1", "californiamountainsnake/longmantelegrambot-inlinemenu": "*" } }
并运行 composer update
或
在您的命令行中运行此命令
composer require californiamountainsnake/longmantelegrambot-inlinemenu
用法
- 从 InlineMenuTelegram 扩展您的 Telegram 类(或将 InlineMenuTelegramTrait 包含到您现有的 Telegram 类中)
<?php // Create your own Telegram class: class MyTelegram extends InlineMenuTelegram { } // somewhere in the webhook.php: $telegram = new MyTelegram($bot_api_key, $bot_username);
- 创建您的菜单对象
<?php $menu = new Menu('Top root menu', 'root', [ [ InlineButton::startCommand('Help!', 'help'), InlineButton::url('It\'s google', 'https://google.ru'), ], [ InlineButton::toast('toast_identifier', 'Toast text!'), new Menu('Sub menu', 'submenu', [ InlineButton::toast('sub_menu_toast', 'Submenu toast!'), InlineButton::menuSection('<< Back', Menu::path('root')) ]), ] ]); // You must call this method once only on the your TOP level menu object. $menu->buildPathsFromThisRoot();
- 从 InlineMenuCallbackqueryCommand 扩展您的标准 CallbackqueryCommand 并实现抽象方法
<?php class CallbackqueryCommand extends InlineMenuCallbackqueryCommand { protected function getRootMenu(): Menu { // return the Menu object from the previous step return new Menu (...); } }
- 获取标准的 Longman\TelegramBot\Entities\InlineKeyboard 对象并在您的命令中使用 Request::sendMessage ()
<?php $menu = new Menu (...); $menu->buildPathsFromThisRoot(); $inlineKeyboard = $menu->getInlineKeyboard(); Request::sendMessage([ 'chat_id' => 'some_chat_id', 'text' => 'This is menu!', 'reply_markup' => $inlineKeyboard, ]);