You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pyrogram库通过channel_id获取频道名称?

问题分析与修正方案

你的代码存在几个关键问题,导致无法正常运行:

  • get_chat是异步方法,必须用await关键字调用
  • get_chat返回的是Chat对象,title是对象的属性,不是方法,不能加括号调用
  • 代码缩进错误:获取频道名称的代码没有放在my_handler函数的缩进块内
  • 若无需监听消息触发,可直接将获取频道名称的逻辑放在客户端启动后的异步上下文里

修正后的代码(直接获取频道名称)

from pyrogram import Client
import config

app = Client(
    "asyncBot",
    api_id=config.api_id,
    api_hash=config.api_hash
)

async def get_channel_name():
    # 异步调用get_chat,传入channel_id
    chat = await app.get_chat(config.CHANNEL_ID)
    # 直接访问Chat对象的title属性
    print(f"频道名称:{chat.title}")

# 客户端启动后执行获取逻辑
app.run(get_channel_name())

修正后的代码(在消息处理器中获取)

如果需要在收到消息时获取频道名称,修正缩进和异步调用:

from pyrogram import Client, types
import config

app = Client(
    "asyncBot",
    api_id=config.api_id,
    api_hash=config.api_hash
)

@app.on_message()
async def my_handler(client: Client, message: types.Message):
    # 异步调用get_chat
    chat = await client.get_chat(config.CHANNEL_ID)
    print(f"频道名称:{chat.title}")

app.run()

关键知识点

  • Pyrogram的大部分IO操作都是异步的,必须用await调用异步方法
  • get_chat(chat_id)返回types.Chat对象,包含频道/聊天的所有信息,title是其中的字符串属性
  • 客户端的run()方法可以直接传入异步函数,或通过with app:上下文管理异步操作

内容的提问来源于stack exchange,提问作者trendbusser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:40:37