переслать сообщение в супер группу с телетоном - PullRequest
0 голосов
/ 17 ноября 2018

Недавно я написал код, который должен пересылать каждое сообщение от определенного пользователя всем группам, к которым я присоединился, но это не так.Вот мой код:

        for message in client.iter_messages('aliakhtari78'):
        try:
            dialogs = client.get_dialogs()
            for dialog in dialogs:
                id_chat = dialog.message.to_id.channel_id
                entity = client.get_entity(id_chat)
                client.forward_messages(
                    entity,  # to which entity you are forwarding the messages
                    message.id,  # the IDs of the messages (or message) to forward
                    'somebody'  # who sent the messages?
                )

        except:
            pass

, в этом коде сначала я беру каждое сообщение, которое отправляет мне 'aliakhtari78' , а затем получаю сущность групп, к которым я присоединился, и в концеон должен переслать сообщение всем группам, но это не так, я проверяю свой код и заменяю сущность пользовательской сущностью, и она работает, и я знаю, что проблема связана с сущностью, но я не могу выяснить, в чем заключается моя проблема. Кроме того, я прошу прощения за ошибки в моем вопросе.

1 Ответ

0 голосов
/ 20 ноября 2018

Чтобы отправлять сообщения любым лицам в Telegram, вам нужно две части информации:

  1. постоянный уникальный идентификатор объекта (это целое число. Это НЕ строка имени пользователя)
  2. access_hash, который отличается для каждого пользователя для каждого объекта

Вы можете передать только @username client.get_entity, и Telethon автоматически разрешит @username для объекта с id и access_hash. Вот почему это работает, когда вы меняете свой код таким образом. Однако в вашем коде вы передали channel_id (который является постоянным уникальным идентификатором сущности) в client.get_entity, а не username.

Обратите внимание, что client.get_dialogs возвращает entities вместе с dialogs. Вы только что проигнорировали сущности! Вот как вы можете получить массив всех сущностей:

dialogs, entities = client.get_dialogs()

Затем просто передайте соответствующую сущность из массива entities в client.forward_messages.

...