2017-10-13 6 views
3

TelethonでTelegram apiを使用する方法を理解するのは本当に難しいです。電報には古いメッセージを削除するチャンネルがあります。 inputpeerchannel()を使用すると、私はchannel_id(No Problem)とchannel_hashが必要です。 findout howtoは、このchannel_hashをchannel_idで取得できません。ドイツからありがとうテレグラムチャンネル - access_hashの入手方法?

+0

ソリューションを見つけましたか? – flagg19

答えて

1

チャンネルaccess_hashを検索するには、チャンネルのユーザー名を解決する必要があります。オリジナルのMTProtoメソッドcontacts.resolveUsername#f93ccba3は@usernameを取得し、access_hashを含むチャンネル情報を返します。

上記の元のMTProtoメソッドを呼び出すには、ResolveUsernameRequestを呼び出す必要があります。このコードを使用して、ユーザ名を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"はユーザー名かchannel_idですか?それは私のためにchannel_idで動作しません、それはユーザー名で動作しますが、私はchannel_idを持っています – flagg19

+0

"your_channel_id"は文字列であり、それはユーザー名です。 'channel_id 'だけでチャンネルにアクセスすることはできません。 'access_hash'も必要です。 –