Подтвердить что ты не робот

Как использовать Telegram API в С# для отправки сообщения

Я хочу использовать Telegram API в С# для отправки простого сообщения на номер. Я нашел несколько lib на GitHub, но я не могу их использовать.

Может кто-нибудь дать простой код? Могу ли я просто делать HTTP-вызовы?

4b9b3361

Ответ 1

  • Установить пакет Telegram.Bot
  • Создайте бота с помощью botfather
  • получить ключ api с помощью команды /token (все еще в botfather)
  • используйте этот код:

var bot = new Api("your api key here"); var t = await bot.SendTextMessage("@channelname or chat_id", "text message");

Теперь вы можете передать имя пользователя канала (в формате @channelusername) вместо chat_id во всех методах (и вместо from_chat_id в переслать сообщение). Чтобы это сработало, бот должен быть администратором в канал.

https://core.telegram.org/bots/api

Ответ 2

используйте этот код:) с https://github.com/sochix/TLSharp

 using TeleSharp.TL;
 using TLSharp;
 using TLSharp.Core;

 namespace TelegramSend
 {

    public partial class Form1 : Form
    {
      public Form1()
     {
         InitializeComponent();
     }


    TelegramClient client;

    private async void button1_Click(object sender, EventArgs e)
    {
        client = new TelegramClient(<your api_id>,  <your api_key>);
        await client.ConnectAsync();
    }

    string hash;

    private async void button2_Click(object sender, EventArgs e)
    {
        hash = await client.SendCodeRequestAsync(textBox1.Text);
        //var code = "<code_from_telegram>"; // you can change code in debugger


    }

    private async void button3_Click(object sender, EventArgs e)
    {
        var user = await client.MakeAuthAsync(textBox1.Text, hash, textBox2.Text);
    }

    private async void button4_Click(object sender, EventArgs e)
    {

        //get available contacts
        var result = await client.GetContactsAsync();

        //find recipient in contacts
        var user = result.users.lists
            .Where(x => x.GetType() == typeof(TLUser))
            .Cast<TLUser>()
            .Where(x => x.first_name == "ZRX");
        if (user.ToList().Count != 0)
        {
            foreach (var u in user)
            {
                if (u.phone.Contains("3965604"))
                {
                    //send message
                    await client.SendMessageAsync(new TLInputPeerUser() { user_id = u.id }, textBox3.Text);
                }
            }
        }

    }
 }}

Ответ 4

Я написал клиентскую библиотеку для доступа к API-интерфейсу Telegram и его исходный код доступен в Github. Вы можете просмотреть файл Telebot.cs, чтобы увидеть пример отправки сообщения в API-интерфейс бота.

Github URL: github.com/mrtaikandi/Telebot

URL-адрес Nuget: nuget.org/packages/Telebot

Ответ 5

1 - сначала создайте канал в телеграмме (например, @mychanel)

2 - создайте бот телеграммы (например, @myTestBot) и получите токен api для следующего шага

3-add @myTestBot на ваш канал (@mychanel) в качестве пользователя-администратора

4-используйте ниже код для отправки сообщения:

   var bot = new TelegramBotClient("api_token_bot");
        var s = await bot.SendTextMessageAsync("@mychanel", "your_message");