не работаетют пользовательские команды
Closed this issue · 17 comments
Добрый день, скопировал как в мануале папку в @app/modules/telegram/UserCommands, раскомментировал в конфиге, не работает, изменил путь в конфигах на app\modules\telegram\UserCommands , тоже не работают, тестирую на /weather пишет такой команды нет
/help команда работает?
Вы полностью весь модуль скопировали?
у вас advanced или basic? Посмотрите в приложении как резолвится путь с \Yii::getAlias()
.
хелп работает но показывается только первоначальные ваши команды их там штуки 4, скопировал как и описано в мануале только папку UserCommands, у меня basic, путь проверю
\Yii::getAlias() все впорядке
Попробуйте поставить точку останова в setWebhook, например
if (!empty(\Yii::$app->modules['telegram']->userCommandsPath)){
if(!$commandsPath = realpath(\Yii::getAlias(\Yii::$app->modules['telegram']->userCommandsPath))){
$commandsPath = realpath(\Yii::getAlias('@app') . \Yii::$app->modules['telegram']->userCommandsPath);
}
if(!is_dir($commandsPath)) throw new UserException('dir ' . \Yii::$app->modules['telegram']->userCommandsPath . ' not found!');
}
и посмотрите Xdebug'ом (ну или var_dump) что там происходит
как надо правильно копировать модуль? может я просто не так скопировал? надо весь модуль целиком копировать в app/modules ?
да все так и сделано, но бот их не видит в упор
realpath(\Yii::getAlias('@app') . \Yii::$app->modules['telegram']->userCommandsPath возращает пустоту вот видимо в чем беда
а если переделать на вот так \Yii::getAlias(\Yii::$app->modules['telegram']->userCommandsPath) то путь верный. баг?
Именно он сначала и проверяется if(!$commandsPath = realpath(\Yii::getAlias(\Yii::$app->modules['telegram']->userCommandsPath))){
ну да, даже изменив путь на /modules/telegram/UserCommands в общем ничего не поменялось, команды юзерские не пашет, хотя модуль папку с ними видит все впорядке
а в каком экшене вообще вызываются команды присланные от бота? чтото не вижу
У вас namespace корректный указан в ваших пользовательских командах? Для вашего пути должен быть modules\telegram\UserCommands;
да вы правы, но этого не было в манах, а так сразу и не додумаешься. все работает спс
пишу
/date Moscow
отвечает
You must specify location in format: /date
каков формат команд?
Команды для примера взяты у Longman. Они на то и пользовательские, потому что пользователь должен писать из сам. Зайдите внутрь посмотрите что в экшне делается. Самая простая команда echo
не было в манах
Добавил