电报API(不是机器人!):如何通过链接到它来获取聊天/频道ID?



我在C#上使用库TLSharp并编写Telegram客户端,但有时我卡住了。

我有一个聊天/频道的链接,例如 https://t.me/joinchat/some-string,我想获取有关聊天/频道的信息或加入它。但是你只能用chat_id来做到这一点,我不知道如何得到。

首先,我想到了contacts.resolveUsername 并从链接中传递"一些字符串"。但它不起作用,说用户名无效。

有什么方法可以获取组的 ID?是故意让获取有关组的信息变得如此复杂吗?

谢谢

好吧,我已经找到了解决方案(部分,见最后(。我正在使用这个架构,让你知道。

  1. 首先,我们需要发送RPC消息.checkChatInvite,并将参数哈希设置为链接的最后一部分(在我的例子中为"一些字符串"(。

  2. TLChatInvite类型的响应到达。它将包含有关该组的主要信息:类型(聊天或频道?(,参与者数量,如果幸运的话,他们自己是Vector。

(下面这一点是我的问题(

  1. 使用相同的参数哈希调用 RPCmessages.importChatInvite。它返回TLUpdatesTLUpdatesCombined对象,该对象将包含TLChat对象的向量。我们需要使用第一个(不过,为了以防万一,不要忘记检查向量的空性(。

但是,messages.importChatInvite将使当前用户加入该组。如何在不加入组的情况下获取组的 ID 我不知道。不过,这东西适合我的客户。

坦率地说,我很失望它为这样一件微不足道的事情花费了这么多时间。

最新更新