我在C#上使用库TLSharp并编写Telegram客户端,但有时我卡住了。
我有一个聊天/频道的链接,例如 https://t.me/joinchat/some-string,我想获取有关聊天/频道的信息或加入它。但是你只能用chat_id来做到这一点,我不知道如何得到。
首先,我想到了contacts.resolveUsername 并从链接中传递"一些字符串"。但它不起作用,说用户名无效。
有什么方法可以获取组的 ID?是故意让获取有关组的信息变得如此复杂吗?
谢谢
好吧,我已经找到了解决方案(部分,见最后(。我正在使用这个架构,让你知道。
-
首先,我们需要发送RPC消息.checkChatInvite,并将参数哈希设置为链接的最后一部分(在我的例子中为"一些字符串"(。
-
TLChatInvite类型的响应到达。它将包含有关该组的主要信息:类型(聊天或频道?(,参与者数量,如果幸运的话,他们自己是Vector。
(下面这一点是我的问题(
- 使用相同的参数哈希调用 RPCmessages.importChatInvite。它返回TLUpdates或TLUpdatesCombined对象,该对象将包含TLChat对象的向量。我们需要使用第一个(不过,为了以防万一,不要忘记检查向量的空性(。
但是,messages.importChatInvite将使当前用户加入该组。如何在不加入组的情况下获取组的 ID 我不知道。不过,这东西适合我的客户。
坦率地说,我很失望它为这样一件微不足道的事情花费了这么多时间。