我正在使用库 TLSharp在 C# 上编写 Telegram 客户端,有时我卡住了。
我有一个聊天/ channel 的链接,例如 https://t.me/joinchat/some-string ,我想获取有关聊天/ channel 的信息或加入。但是你只需要 chat_id 就可以做到这一点,我不知道如何获得。
首先,我想到了 contacts.resolveUsername 并从链接中将其传递为“some-string”。但是不行,说用户名无效。
有什么方法可以获取群组ID?是故意让获取有关群组的信息变得如此复杂吗?
谢谢
最佳答案
好吧,我找到了解决方案(部分,见文末)。我正在使用 this模式,让你知道。
首先,我们需要发送 RPC messages.checkChatInvite 并将参数 hash 设置为链接的最后一部分(在我的例子中为“some-string” ).
TLChatInvite 类型的响应到达。它将包含关于群组的主要信息:它的类型(聊天或 channel ?)、参与者人数,如果幸运的话,他们本身就是 Vector。
(下面这一点是我的问题)
- 使用相同的参数哈希调用 RPC messages.importChatInvite。它返回 TLUpdates 或 TLUpdatesCombined 对象,该对象将包含 TLChat 对象的向量。我们需要使用第一个(不过,为了以防万一,不要忘记检查向量是否为空)。
但是,messages.importChatInvite 将使当前用户加入群组。如何在不加入该组的情况下获取该组的 ID 我不知道。不过,这东西适合我的客户。
坦率地说,我很失望为这样一件微不足道的事情耗费了这么多时间。
关于c# - Telegram API(不是 Bot!): How to get chat/channel ID by link to it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45784127/