我在C#上使用库TLSharp并编写Telegram客户端,有时我陷入困境。

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

首先,我考虑了contacts.resolveUsername,并从链接中传递了“ some-string”。但这无效,因为用户名无效。

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

谢谢

最佳答案

好吧,我已经找到了解决方案(部分,请参见结尾)。我正在使用this模式,让您知道。


首先,我们需要发送RPC message.checkChatInvite,并将参数哈希设置为链接的最后一部分(在我的情况下为“ some-string”)。
TLChatInvite类型的响应到达。它将包含有关该组的主要信息:它的类型(聊天还是频道?),参与者人数,如果幸运的话,它们本身也可以作为Vector。


(这是我的问题)


使用相同的参数哈希调用RPC messages.importChatInvite。它返回TLUpdates或TLUpdatesCombined对象,其中将包含TLChat对象的向量。我们将需要使用第一个(不过,以防万一,请不要忘记检查向量是否为空)。


但是,messages.importChatInvite将使当前用户加入该组。如何获得该组的ID而又不加入该组,我一无所知。虽然,这东西适合我的客户。

坦率地说,我很失望它花了这么多时间来处理如此琐碎的事情。

07-24 09:36
查看更多