c# - Telegram API(不是 Bot!): How to get chat/channel ID by link to it?

标签 c# api telegram

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

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

首先,我想到了 contacts.resolveUsername 并从链接中将其传递为“some-string”。但是不行,说用户名无效。

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

谢谢

最佳答案

好吧,我找到了解决方案(部分,见文末)。我正在使用 this模式,让你知道。

  1. 首先,我们需要发送 RPC messages.checkChatInvite 并将参数 hash 设置为链接的最后一部分(在我的例子中为“some-string” ).

  2. TLChatInvite 类型的响应到达。它将包含关于群组的主要信息:它的类型(聊天或 channel ?)、参与者人数,如果幸运的话,他们本身就是 Vector。

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

  1. 使用相同的参数哈希调用 RPC messages.importChatInvite。它返回 TLUpdatesTLUpdatesCombined 对象,该对象将包含 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/

相关文章:

c# - 获取 maxJsonLength 属性错误

c# - 在 .net 中将 UTF8 字符串转换为 UTF-16

javascript - 在每个页面加载时包括 twitter/flickr api 调用 (WordPress)

api - 使用 Telegram Bot 向电话号码而非@用户名发送消息

java - 我想要为我的 Java 编码 Telegram 机器人提供粗体文本,如何实现?

c# - 桥接模式有什么好处

java - Twitter4J sendDirectMessage 返回页面不存在

php - 从 Telegram channel 获取我不是管理员的消息

telegram - 如何检查机器人网址是否仅在应用程序浏览器中的 Telegram 中打开

c# - WPF RichTextBox 标记化编辑