如何在不发送消息的情况下获取电报频道ID

Moh*_*Nik 1 telegram telegram-bot

有什么方法可以查找电报频道ID,而无需向其发送消息?

现在,我以这种方式通过在代码中调用此URL来找到频道ID,并得到JSON作为结果:

https://api.telegram.org/bot???????/sendMessage?chat_id=@??????&text=123

但这会导致向该频道发送消息“ 123”,这是不好的。

谢谢你们

xua*_*hui 11

检查此链接以获取帮助。
它正在使用网络电报网址参数信息。

从引用的链接添加详细信息:

  1. 登录网络电报
  2. 单击目标频道,然后您将在浏览器中找到显示的网址。

如果是公共频道,则ID为频道的@name。

如果是专用频道,则URL必须类似于:
https://web.telegram.org/#/im?p=c1018013852_555990343349619165
在这种情况下,频道ID为1018013852。
了解频道ID始终为负数且长度为13个字符非常重要!
因此,向其添加-100,使正确的ID为-1001018013852。


Sed*_*rei 9

您可以使用 Web Telegram 在浏览器中查看该页面链接中的每个频道 ID

只需将您频道中的消息转发到此机器人:(https://telegram.me/getidsbot


Mar*_*ter 5

是的,只需将频道消息转发给您的机器人并获取message.forward_from_chat.id.


scr*_*uel 5

  1. 获取您的频道链接

  2. 安装python库telethon

  3. 在此处获取您的 api_id 和 api_hash 。

  4. 编写以下代码并运行:

     from telethon import TelegramClient
     api_id=
     api_hash=
     channel_link = 'your_channel_link'
     client = TelegramClient(session_name, api_id, api_hash,
                             update_workers=4, spawn_read_thread=False)
     client.start()
     entity = client.get_input_entity(**channel_link**)
     print(entity.channel_id)
    
    Run Code Online (Sandbox Code Playgroud)

顺便说一句,如果您将它用于电报机器人,只需在打印的 id 前添加 -100,这应该可以工作!