2017-10-13 2 views
3

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?

+0

Avez-vous trouvé une solution? – flagg19

Répondre

1

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() 
+0

"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

+0

"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'. –