Делаю юзербота на Pyrogram, он должен автоматически отвечать в закрытой группе.
Столкнулся с проблемой: юзербот не отвечает на сообщения автоматически.
Складывается ощущение как будто он не видит то что я ему пишу с другого аккаунта.
Пробовал писать и в группу и напрямую юзерботу.
Сделал юзербота администратором группы, дал все необходимые права.
Телеграмм при запуске юзербота на авторизацию не ругается, все ок.
В целях теста все свел к простому коду без фильтров:
(это весь код обработчика событий и сообщений)
from pyrogram import Client, filters
def setup(client: Client):
print("Setting up the bot...") # Лог при начале установки
@client.on_message(filters.text)
async def any_message(client, message):
print(f"Received a message in chat {message.chat.id} from user {message.from_user.id}")
await client.send_message(message.chat.id, "Привет")
print("Bot handlers are set up!") # Лог после установки обработчика
Сообщения не видит и даже не выводится строка "Bot handlers are set up!", я её специально ввел как индикатор, для отладки.
Запускается все из основного модуля:
import asyncio
from pyrogram import Client
from credentials import API_ID, API_HASH
import handle_messages
import logging
app = Client("manager_userbot_session", api_id=API_ID, api_hash=API_HASH)
handle_messages.setup(app)
async def main():
await app.start()
print("Клиент запущен")
while True:
await asyncio.sleep(10)
if __name__ == "__main__":
asyncio.run(main())
Разбирательства вскрыли такую ситуацию.
Включил отладку, отладка показала, что у юзербота не права отправлять сообщения.
Отладка выдала такое:
"admin_rights": {
"_": "types.ChatAdminRights",
"change_info": true,
"post_messages": false, # запрет на отсылку сообщений
"edit_messages": false,
"delete_messages": true,
"ban_users": true,
"invite_users": true,
"pin_messages": true,
"add_admins": true,
...
}
Хотя в группе юзербот администратор, помимо этого у всех пользователей стандартные права, в том числе на потправку сообщений.
Тем не мнее отладка выдает такое и автоответ не работает.
Есть идеи?