Kot
https://github.com/irazasyed/telegram-bot-sdk#telegram-bot-api---php-sdk
Kot
сейчас
Michael
это бот, который тебе не подходит. А тебе надо клиент
Kot
хм, понятно
Michael
или первоисточник лучше наверное https://core.telegram.org/api#getting-started
Kot
Kot
мне нужно просто зайти под обычным пользователем в группу и считывать все проходящие в ней сообщения
Michael
там 2 разные вещи. БотАпи для деланья ботов.
и Телеграм АПИ - для деланья своего телеграмм клиента - твой случай. Делаешь своего клиента на php без граф.интерфейса. Регаешься в нем под собой и этот клиент будет читать ВСЕ твои группы чаты и сообщения
SarcasmIO
https://laravel-news.com/category/laravel-5.5
Michael
Kot
Kot
похоже то что нужно.
Kot
только не похоже что там есть php клиент )
Michael
там есть АПИ
Michael
php есть в первой ссылке, ктото это апи уже использовал. но давно, пишет что еще до времен БотАпи. потому могло устареть его творение
Kot
Michael
Kot
понятно
Michael
о. прикольно. параметр в роуте можно слитно приписывать.
Route::get('/company{company}',
-> http://local/company5
-> public function list(Company $company) и работает.
вместо http://local/company/5
Michael
даже понятнее урлы выходят. еще и когда много параметров цифровых. Какие + - ?
Andrey
Минус- это не рест апи у тебя получается. Да и "понятнее" - для кого? Только для тебя) общепринятые стандарты не такие
Michael
хорошо. отказался )
Michael
вопрос по Конструктору.
Как при селекте обнулить одно поле в зависимости от значения другого?
Запрашиваю список Заказов. Но есть крыжик "анонимный заказ" is_anonimous значит ему не надо отображать компанию.
тк выдаю ажаксом, надо поле company_id зануллить до отправки. (причем еще использую загрузку $orders = Order::with('company'))
возможно в конструкторе так сразу сделать, а не потом массив перебирать ?
на чистом SQL мог всякие IIF в селекте написать для поля. а тут можно как?
Anonymous
SelectRaw
Anonymous
можешь заюзать
Michael
SelectRaw
засунуть в него IIF() ? но привязка к mySQl будет
Michael
ладно. повторно переберу массив.. или коллекции еще посмотрю
Anonymous
в selectraw можно юзать обычный sql запрос - что там писать дело уже 3е
Michael
Michael
да! полезноая штука transform(). Постобработку перед ажакс отправкой удобно делать, и поудалять лишние поля особенно внешнии ключи (тк они повторяются после with())
Евгений
народ, помогите
Евгений
есть у меня сервис, TelegramService
Евгений
там метод есть connect который принимает сообщение от юзера. Внутри метода вызывается другой метод, который определяет какая команда задана телеграм боту. И дальше в зависимости от команды мне надо вызвать определенный метод этого сервиса
Евгений
делаю так
Евгений
public static function connect($chat, $data)
{
$command = self::checkCommand($data);
if (method_exists('self', $command)) {
return self::$command($chat, $data);
} else {
return self::test($chat, $data, $command);
}
}
Но вот method_exists всегда даёт false почему то
Евгений
например команда /start в checkCommand вернёт мне строку 'start'. У меня есть метод в этом сервисе public static function start(...)
Евгений
но почему то не вызывается
Andrey
Кавычки вокруг self?
Евгений
да
Евгений
ну я пробовал и просто с названием класса
Евгений
то же самое
Andrey
а без них не принимает? я прост не помню как то
Евгений
без кавычек ваще не работает, нагуглил что они нужны
Евгений
в любом случае, ошибки в этом нет, вызывается в итоге self::test который при отсутствии метода должен вызываться
Andrey
<?php
class One {
public static function foo() {
echo 'bar';
}
public function exist() {
return method_exists(get_called_class(), 'foo');
}
}
$a = new One();
var_dump($a->exist());
Евгений
бле, короче надо все таки вместо 'self' вот так CLASS
Евгений
и всё работает
Евгений
ну или как у тебя
Евгений
спасибо короч)
Евгений
__CLASS__
Andrey
Ну меня self в кавачках сразу смутил
Евгений
на стэковерфлоу гдето раскопал, хрен значит... ну теперь работает и это хорошо) а тебе спасибо
Евгений
теперь правда запара другая, как всё это обрабатывать когда команд типа /city1 и /city2 но это сам щас соображу
Anonymous
Евгений
Нет
Евгений
3 штуки потом код потом ещё 3 штуки
Anonymous
Michael
Евгений
Только в роутах это параметры которые идут переменной, а в телеграмм в командах нет переменных. Ну я уже придумал как делать, просто пока ушел на перерыв. Потом сделаю
Michael
хм
, а мне интересно можно Сделать Роут (без привязки к системе) и скармливать ему просто строки типа "/city2" и контроллер отдельный будет эти команды обрабатывать
Andrey
Route::get('{var}', 'Controller@method')
Michael
это глобальный роут. он смотрит на то что в url пришло приложению.
а можно создать другой , не привязанный, и вручную в него скармливать строки?
invariance
о чем ты вообще...
invariance
роутер работает с url
Юрий
Юрий
роутер по маске работать умеет
Юрий
без префикса нет
Andrey
Andrey
Странная задача
Michael
не, нет задачи. Это у человека задача обрабатывать комманды бота. У меня мысль возникла эти комманды разбирать механизмом роутов
Mikhail
Не прописывая в laravel, можно в конфигах веб сервера
Andrey
Я похоже вообще не понимаю, о чем речь
Mikhail
Типо внутренние запросы?
Andrey
Почему ты локальный файл должен роуту скармиливать?
Andrey
Почему для этого не сделать отдельный сервис, который ты хоть их контроллера дергаешь, хоть из Job
Michael
Andrey
ну команда бота это ж не url?!
Andrey
это например /start