【问题标题】:How to get channel/chat/user name of forwarded message using Telethon?如何使用 Telethon 获取转发消息的频道/聊天/用户名?
【发布时间】:2017-10-14 14:28:56
【问题描述】:

我尝试通过频道 ID 获取频道名称:

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 看起来像:

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

所以,我不能从message.fwd_from 中获取频道名称。而且我不加入这个频道。

当我尝试拨打 GetFullChannelRequest 时,出现下一个错误:

ChannelInvalidError(...), '无效的通道对象。确保通过 正确的类型,例如确保设计请求 寻找渠道或以其他方式寻找更合适的其他渠道。'

如何正确获取频道名称?

【问题讨论】:

    标签: python python-3.x telegram telethon


    【解决方案1】:

    回复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
    

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 2022-07-16
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 2022-07-17
      • 2023-01-26
      • 1970-01-01
      相关资源
      最近更新 更多