TelegramBot / Api

Native PHP Wrapper for Telegram BOT API
MIT License
1.07k stars 324 forks source link

Функция установки команд бота есть SetMyCommands? Я не нашел #312

Closed AndreyBaratynskiy closed 3 years ago

AndreyBaratynskiy commented 3 years ago

Копался в библиотеках и не смог найти реализацию команды SetMyCommands() которая позволяла бы устанавливать команды бота из самого бота;

Реализовал вот так. При запуске боту команды /sbc он проставляет команды и описания. Код ниже:

$Telegram_botkey="ключ";
$Telegram_dir="/";

$json = file_get_contents('php://input');
    $obj = json_decode($json, TRUE); 
    $lt=mb_strtolower($obj['message']['text'], 'UTF-8');

if (stristr($lt, 'sbc')) { $cmds = [ ["command" => "start", "description" => "Информация о возможностях бота"], ["command" => "vdot", "description" => "Калькулятор бегового темпа"], ["command" => "shedule", "description" => "Расписание"], ["command" => "beauty", "description" => "Фоточки красавиц"] ];

    $cmds_encoded = json_encode($cmds, JSON_UNESCAPED_UNICODE);
    $url = "https://api.telegram.org/bot".$Telegram_botkey."/setMyCommands?commands=".$cmds_encoded;
$json=file_get_contents($text);     

}

MyZik commented 3 years ago

Да, метода не хватает в библиотеке. Я на днях займусь этим и сделаю pull request.

AndreyBaratynskiy commented 3 years ago

Я пока новичок в этом вопросе. Вашу библиотеку использую совсем недавно. Не подскажете, что делать когда выйден обновленный релиз? Выкачать папку SRC и JSON и заново натравить на него Composer?

MyZik commented 3 years ago

Я пока новичок в этом вопросе. Вашу библиотеку использую совсем недавно. Не подскажете, что делать когда выйден обновленный релиз? Выкачать папку SRC и JSON и заново натравить на него Composer?

Как сделаю, я всё напишу :)

AndreyBaratynskiy commented 3 years ago

Важное дополнение тем, кто хочет настраивать команды изнутри бота. После отработки скрипта, чтобы обновился список команд почему-то обязательно нужно в чате написать сообщение с обратным слешем "\".

MyZik commented 3 years ago

@AndreyBaratynskiy дропнул релиз, всё что тебе нужно это:

composer update