2017-10-13 7 views
2

나는 채널 ID로 채널의 이름을 얻으려고 :Telethon을 사용하여 전달 된 메시지의 채널/채팅/사용자 이름을 얻는 방법은 무엇입니까?

fwd_from=MessageFwdHeader(
    channel_id=1053596007, 
    date=datetime.fromtimestamp(1507891987.0), 
    post_author=None, # None!!! 
    from_id=None, 
    channel_post=3030 
), 

그래서, 내가 message.fwd_from에서 채널 이름을 캔트 : 같은

result = self._client(GetHistoryRequest(
     entity, 
     limit=100, 
     offset_date=None, 
     offset_id=0, 
     max_id=0, 
     min_id=last_read_message_id, 
     add_offset=0 
    )) 
for message in result.messages: 
    if isinstance(message.fwd_from, MessageFwdHeader): 
     fwd_channel_id = message.fwd_from.channel_id 
     if fwd_channel_id: 
      fwd_result = self._client(GetFullChannelRequest(# problem!!! 
       InputPeerChannel(message.fwd_from.channel_id, 0) 
      )) 

message.fwd_from 보인다. 그리고 나는이 채널에 가입하지 않는다.

ChannelInvalidError(...), 'Invalid channel object. Make sure to pass the right types, for instance making sure that the request is designed for channels or otherwise look for a different one more suited.'

어떻게 채널의 이름을 제대로 활용하려면 다음

내가 GetFullChannelRequest를 호출하려고

, 나는 다음 오류가?

답변

0

대답 here

예 :

result = self._client(GetHistoryRequest(
     entity, 
     limit=100, 
     offset_date=None, 
     offset_id=0, 
     max_id=0, 
     min_id=last_read_message_id, 
     add_offset=0 
    )) 
for message in result.messages: 
    if isinstance(message.fwd_from, MessageFwdHeader): 
      entity = self._client.get_input_entity(
       PeerChannel(message.fwd_from.channel_id) 
      ) 
      if message.fwd_from.channel_id: 
       fwd_result = self._client(GetFullChannelRequest(entity)) 
       if hasattr(fwd_result, 'chats') and len(fwd_result.chats) > 0: 
        fwd_title = fwd_result.chats[0].title