xtrime-ru / TelegramApiServer

Fast, simple, async php telegram api server: MadelineProto + Amp HTTP Server
https://tg.i-c-a.su
MIT License
529 stars 116 forks source link

Не работает метод getHistory. #157

Closed YAMER1 closed 3 days ago

YAMER1 commented 1 month ago

Здравствуйте, в предыдущем вопросе я писал, что не работает, консоль закрывается. Потом попробовал переустановить, запросило авторизацию телеграм и при повторном docker compose run --rm api также закрывается через пару секунд. Я думал, что он не работает, ведь ничего не выводит повторно, просто закрывается и у меня не работает ещё RSS. Но потом попробовал запросы, они работают частично. Срабатывает curl -g http://127.0.0.1:9503/api/getInfo/?id=@mash значит TelegramApiServer работает.

Запрос с Html curl -g http://127.0.0.1:9503/api/getHistoryHtml/?data[peer]=@mash&data[limit]=1 работает, но возвращает кучу записей, а не последнюю. может из-за опции -g, но без неё не работает. Запрос curl -g http://127.0.0.1:9503/api/getHistory/?data[peer]=@mash&data[limit]=1 выдаёт ошибку. Почему один запрос хотя бы работает, а у второго ошибка? Может из-за этого у меня не работает RSS, там ошибка 504 Gateway или это не влияет... Возвращает { "success": false, "errors": [ { "exception": "Error", "message": "Call to undefined method danog\\MadelineProto\\API::getHistory()", "file": "/app-host-link/src/Controllers/AbstractApiController.php", "line": 176, "code": 0, "backtrace": [ { "file": "/app-host-link/vendor/amphp/amp/src/functions.php", "line": 33, "function": "callApiCommon", "class": "TelegramApiServer\\Controllers\\AbstractApiController", "type": "->", "args": [ { "auth": {}, "account": {}, "users": {}, "contacts": {}, "messages": {}, "updates": {}, "photos": {}, "upload": {}, "help": {}, "channels": {}, "bots": {}, "payments": {}, "stickers": {}, "phone": {}, "langpack": {}, "folders": {}, "stats": {}, "chatlists": {}, "stories": {}, "premium": {}, "smsjobs": {}, "fragment": {} } ] }, { "file": "/app-host-link/vendor/revolt/event-loop/src/EventLoop/Internal/AbstractDriver.php", "line": 425, "function": "Amp\\{closure}", "args": [ null, null, [] ] }, { "file": "/app-host-link/vendor/revolt/event-loop/src/EventLoop/Internal/AbstractDriver.php", "line": 562, "function": "invokeMicrotasks", "class": "Revolt\\EventLoop\\Internal\\AbstractDriver", "type": "->", "args": [] } ], "previous exception": null } ], "response": null }

YAMER1 commented 1 month ago

504 Gateway не влияет, дурацкий битрикс влияет, ладно надо было просто правильно настройки задать для nginx.

xtrime-ru commented 1 month ago

Метод getHistory переехал в messages.getHistory: https://github.com/xtrime-ru/TelegramApiServer/commit/79251fa81a307dcbdff86f949f44c6a16c6b742f

Я выпилил лишние алиасы, так как теперь базовые методы поддерживают передачу не всех аргументов. Это была единственная причина держать alias.

xtrime-ru commented 1 month ago

Запрос с Html curl -g http://127.0.0.1:9503/api/getHistoryHtml/?data[peer]=@mash&data[limit]=1 работает, но возвращает кучу записей, а не последнюю. может из-за опции -g, но без неё не работает.

Опция -g нужна для того что бы curl передавал все аргументы запроса.

Проверил getHistoryHtml - все работает корректно, limit учитывается:

> curl "http://127.0.0.1:9503/api/getHistoryHtml/?data[peer]=@mash&data[limit]=1" -gs | jq ".response.messages | length"
1
> curl "http://127.0.0.1:9503/api/getHistoryHtml/?data[peer]=@mash&data[limit]=5" -gs | jq ".response.messages | length"
5