2017-10-13 5 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은 @ 사용자 이름을 가져오고 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'도 필요합니다. –