Использую метод API Telegram под названием message.getDialog через библиотеку telethon (в ней он называется messages.GetDialogsRequest) для парсинга диалогов пользователя.
в ответ он выдает объект класса Dialogs с атрибутами:
self.dialogs: [Dialog]
self.messages: [Message]
self.chats: [Chat, Channel]
self.users: [Users]
ссылка на документацию
Я перебираю атрибуты chats и users (а эти атрибуты содержат списки из объектов классов Chat/Channel и Users соответственно), у чатов и каналов получаю название и id, у пользователей id и access_hash:
dialogs = GetDialogsRequest(...)
for chat in dialogs.chats:
print(chat.title, chat.id)
for user in dialogs.users:
print(user.id,user.access_hash)
Но почему-то для упомянутых выше каналов я получаю по два экземпляра с разным id:
RoToRo 1306046987 #вот
RoToRo 498212715 #вот
Телеграм-боты на AIOgram (курс на Stepik) 1520201202 #вот
Телеграм-боты на AIOgram (курс на Stepik) 812083638 #вот
Test_chat 815483358
GHOST | ORDERS 1623106210
...
В ходе расследования получил следующее:
Channel(id=1520201202, title='Телеграм-боты на AIOgram (курс на Stepik)', photo=ChatPhoto(photo_id=5443003769685131658, dc_id=2, has_video=False, и т.д...
ChatForbidden(id=812083638, title='Телеграм-боты на AIOgram (курс на Stepik)')
Channel(id=1306046987, title='RoToRo', photo=ChatPhoto(photo_id=5240456990361235327, dc_id=2, has_video=Falseи т.д...
ChatForbidden(id=498212715, title='RoToRo')
Т.е. первый id принадлежит существующему чату (объекта класса Channel) , а второй - некому ChatForbidden.
Порылся в документации к Telegram API и получил следующее (
ссылка):
chatForbidden
A group to which the user has no access. E.g., because the user was kicked from the group.
Перевод гуглом:
chatForbidden
Группа, к которой у пользователя нет доступа. Например, потому что пользователя исключили из группы.
Но меня никто не кикал, пожалуйста, объясните что это такое...