【问题标题】:How Use Telegram Api in C# WIth SharpTelegram如何通过 SharpTelegram 在 C# 中使用 Telegram Api
【发布时间】:2015-12-11 22:24:09
【问题描述】:

如何通过 SharpTelegram 在 C# 中使用 Telegram API 我用这个https://github.com/Everbytes/SharpTL 电话号码的种子消息在c#中有电报 我需要这个 lib tanx 的示例使用

【问题讨论】:

  • SharpTL 库仅用于序列化/反序列化。有 SharpMTProto+SharpTelegram 库处于冻结未完成状态。
  • @AlexanderLogger 这就是为什么最好的办法是了解 Telegram 的工作原理,编写自己的库并在 Telegram 添加新功能时对其进行调整。一旦你掌握了基础知识......它非常简单
  • @CharlesO 可能是,但至少序列化程序已经完成,经过测试并且运行良好。也没有必要编写一个新的库,很多工作已经用现有的库完成了,虽然还没有完成。如果可能的话,这就是应该如何开发免费和开源软件的方式。目前我对为 .net/mono 开发不感兴趣,但如果有人想开发电报客户端库,应该更好地了解它已经完成的工作并继续开发它。但是如果有人会说撤销的lib太难理解,或者它的设计不好,那也没关系。
  • @AlexanderLogger 好点,但问题是,大多数库可能是较旧的 Telegram 层,可能只有 23 层。当前的 API 在第 48 层...知道如何编写自己的 TL 解析器等使您可以根据需要更新您的库。如果必须,您当然可以在其他 OSS 工作上进行构建。但正如您所指出的,有一些库被冻结和不完整,或者已经过时
  • @CharlesO 实际上层系统是一个基于核心协议的独立部分,它保持不变,因此几乎所有实现的东西都没有过时(至少 SharpTL 和 SharpMTProto),只支持 API 的层,它可以使用特殊工具轻松地从当前层 json 更新:SharpTL.Compiler。

标签: c# api telegram


【解决方案1】:

您可能想看看这个 C# 电报库:https://github.com/sochix/TLSharp

您可能还想开始学习他们的 API 并从头开始构建您自己的库。

以下是一些帮助您入门的注意事项:https://stackoverflow.com/a/32809138/44080

干杯

【讨论】:

  • TLSharp 不再受支持/维护
【解决方案2】:

现在有WTelegramClient,使用最新的 Telegram Client API 协议(以用户身份连接,而不是机器人)。

该库非常完整,但也非常易于使用。关注README on GitHub简单介绍。

向某人发送消息可以很简单:

using TL;

using var client = new WTelegram.Client(); // or Client(Environment.GetEnvironmentVariable)
await client.LoginUserIfNeeded();
var result = await client.Contacts_ImportContacts(new[] { new InputPhoneContact { phone = "+PHONENUMBER" } });
await client.SendMessageAsync(result.users[result.imported[0].user_id], "Hello");

//or by username:
//var result = await client.Contacts_ResolveUsername("USERNAME");
//await await client.SendMessageAsync(result.User, "Hello");

【讨论】:

    【解决方案3】:

    https://github.com/sochix/TLSharp 使用 C# 电报库 TLSharpTests.cs 包含示例:

        public async Task ImportContactByPhoneNumberAndSendMessage()
        {
            // User should be already authenticated!
    
            var store = new FileSessionStore();
            var client = new TelegramClient(store, "session");
            await client.Connect();
    
            Assert.IsTrue(client.IsUserAuthorized());
    
            var res = await client.ImportContactByPhoneNumber(NumberToSendMessage);
    
            Assert.IsNotNull(res);
    
            await client.SendMessage(res.Value, "Test message from TelegramClient");
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 2017-07-01
      • 2017-04-30
      • 1970-01-01
      • 2016-07-09
      • 2020-09-15
      • 1970-01-01
      • 2019-10-11
      相关资源
      最近更新 更多