Я пытаюсь зарегистрироваться, когда пользователь присоединяется к указанному c чату (супергруппа / мегагруппа) ( chatId , это предоставляется в качестве аргумента из другой программы, не имеет значения), используя пригласительная ссылка . Проблема заключается в том, что chatAction Событие не обнаруживает, когда пользователь присоединяется, но делает, если пользователь покидает чат. Следующий код создает канал / мегагруппу, редактируя его разрешения:
with TelegramClient('anon', api_id, api_hash) as client:
result = client(functions.channels.CreateChannelRequest(
title='Titulo',
about= 'Description',
megagroup=True
))
chatId = result.chats[0].id
chat = client.get_entity(chatId)
client.edit_permissions(chat,None,send_media=False,send_stickers=False,
send_gifs=False,send_games=False,send_polls=False,
send_inline=False,change_info=False,
invite_users=False,pin_messages=False)
Следующий код пытается определить, когда пользователь присоединяется к указанному c чату:
client = TelegramClient('anon', api_id, api_hash)
@client.on(events.ChatAction)
async def new_user_handler(event):
if event.chat_id == chatId:
chat = await event.get_chat()
user = await event.get_user()
if event.user_joined == True:
chatTitle = chat.title
userName = user.username
print('User {} joined group {} (id: {})'.format(userName,chatTitle,chatId))
client.start()
client.run_until_disconnected()
Я пытался все возможные ошибки, связанные с идентификаторами, и это работает правильно. Я подозреваю, что это может быть связано с:
- Работа с каналом / супергруппой в Telethon, но с июня концепция супергруппа / мегагруппа исчезла в Telegram .
Если бы вы могли помочь мне или дать мне несколько советов или знаний о правильном использовании событий в Telethon, это было бы весьма полезно. Спасибо.