如何使用 Telegram API 通过给定的 joinlink 获取私人频道的聊天 ID?
Posted
技术标签:
【中文标题】如何使用 Telegram API 通过给定的 joinlink 获取私人频道的聊天 ID?【英文标题】:How to obtain chatid of a private channel by given joinlink using Telegram API? 【发布时间】:2017-11-18 05:19:33 【问题描述】:我有一个这样的加入链接:https://t.me/joinchat/AAAAAEI95pT9clShebEcMg
我想知道导致我获得该频道的chatid的功能。
谢谢。
【问题讨论】:
【参考方案1】:您可以使用电报API函数messages.checkChatInvite
from telethon import TelegramClient
from telethon.tl.functions.messages.check_chat_invite import CheckChatInviteRequest
client = TelegramClient('session_id', '+phonenumber', api_id=1234, api_hash='0cxxxxxxx')
client.connect()
channel_hash = "AAAAAxxxxxxxx"
result = client.invoke(CheckChatInviteRequest(channel_hash))
print (result)
结果会是这样的:
(chatInviteAlready (ID: 0x5abcdefg) = (chat=(channel (ID: 0x5abcdefg) = (creator=None, kicked=None, left=None, editor=True, moderator=None, broadcast=True, verified=None, megagroup=None, restricted=None, democracy=None, signatures=None, min=None, id=123456789, access_hash=615xxxxxxxxx, title=testChannel, username=None, photo=(chatPhotoEmpty (ID: 0x37xxxxxxx) = ()), date=2017-06-14 14:34:50, version=0, restriction_reason=None))))
这里响应中的 id 是您要查找的频道 id。 上面的示例使用 Telethon 和 python,但您可以使用任何语言和客户端连接到电报 API。
【讨论】:
@Burzum 频道哈希是您发送的网址末尾的哈希。在您的示例中,它是 AAAAAEI95pT9clShebEcMg @Burzum 如果您发现我的回答有帮助,请将其标记为已接受。让我为您找到一个如何向频道发送消息的示例,但是等等,成员无法向频道发送消息。他们需要是管理员。这是您尝试向其发送消息的群组或频道吗? @Burzum 在我的回答结果中看到 checkChatInvite 的结果,它已经有 access_hash: id=123456789, access_hash=615xxxxxxxxx。 @Burzum 用于不需要 access_hash 的组。只有超级组才需要访问哈希。所以你发现只是用chat_id发送消息。 @Burzum 您需要使用 InputPeerChat 将 chat_id 转换为聊天。像这样 chat = InputPeerChat(chat_id) 然后调用 send_message(chat, 'Test')以上是关于如何使用 Telegram API 通过给定的 joinlink 获取私人频道的聊天 ID?的主要内容,如果未能解决你的问题,请参考以下文章
找出我自己的用户 ID 以使用 Telegram API 发送消息