J'essaie vraiment de comprendre comment utiliser Telegram api avec le téléthon. J'ai des chaînes dans Telegram, où je veux supprimer les anciens messages. En utilisant inputpeerchannel() j'ai besoin de channel_id (No Problem) et channel_hash. Je ne peux pas trouver comment obtenir ce channel_hash par channel_id. Merci de l'AllemagneChaîne de télégrammes - comment accéder à access_hash?
Répondre
Afin de trouver le canal access_hash
, vous devez résoudre le nom d'utilisateur de canal. La méthode originale MTProto contacts.resolveUsername#f93ccba3
obtient le nom d'utilisateur @ et renvoie les informations du canal, y compris access_hash
.
En téléthon, vous devez appeler ResolveUsernameRequest pour appeler la méthode MTProto originale ci-dessus. Vous pouvez utiliser ce code pour résoudre le nom d'utilisateur à access_hash
:
client = TelegramClient(session_file, api_id=00000, api_hash='XXXXX')
client.connect()
response = client.invoke(ResolveUsernameRequest("your_channel_id"))
print(response.chats[0].access_hash)
client.disconnect()
"your_channel_id" est le nom d'utilisateur ou le channel_id? ça ne marche pas pour moi avec le channel_id, ça fonctionne avec le nom d'utilisateur mais je n'ai que le channel_id – flagg19
"your_channel_id" est une chaîne et c'est le nom d'utilisateur. Vous ne pouvez pas accéder à une chaîne uniquement avec 'channel_id'. Vous avez également besoin de 'access_hash'. –
Avez-vous trouvé une solution? – flagg19