[Source] C# Telegram Bot ответ на простые команды

  • Автор темы Автор темы Forgeq
  • Дата начала Дата начала

Forgeq

Один герой, но так много имён
Продвинутый
Регистрация
26.07.18
Сообщения
133
Реакции
71
Баллы
28
Всем привет, сегодня покажу как написать обычного Telegram бота который будет выполнять какие либо функции.


Начнем:


Для начала нам понадобится написать основу для этого бота
Код:
[b]using System.Collections.Specialized;
[b]using System.Threading;
[b]using System.Net;
[b]using SimpleJSON;
[b]namespace ConsoleApp3
[b]{
    [b]class Program
    [b]{
        [b]public static string Token = @""; // токен от нашего бота
        [b]public static int LastUpdateID = 0; // последний ID полученный от бота
        [b]static void Main(string[] args)
        [b]{
        [b]// Дальше нам понадобится класс SimpleJson его вы создадите самостоятельно
     [b]//   https://github.com/Bunny83/SimpleJSON/blob/master/SimpleJSON.cs

[b][b]// Далее создаем функцию проверки полученных сообщений боту

        [b][b]void GetUpdates()
        [b]{
            [b]using (var webClient = new WebClient())
            [b]{

                [b][b]string response = webClient.DownloadString("https://api.telegram.org/bot" + Token + "/getUpdates" + "?offset=" + (LastUpdateID + 1));

                [b][b]var N = JSON.Parse(response);
                [b]foreach (JSONNode r in N["result"].AsArray)
                [b]{
                    [b]string comm = r["message"]["text"]; // Команда для бота
                    [b]string chat = r["message"]["chat"]["id"]; // Чат ID с кем ведется переписка
                    [b]LastUpdateID = r["update_id"].AsInt; // последний id полученного диалога
                    [b]// Дальше делаем проверку первой полученной команды
                    [b]if (r["message"]["text"] == "/start")
                    [b]{
                        [b]SendMessage("Привет, я бот которого пишут по примеру темы на ********.NET", r["message"]["chat"]["id"].AsInt);
                    [b]}
                [b]}
            [b]}
        [b]}
        [b]// Далее готовим функцию для ответа на команды

        [b][b]void SendMessage(string message, int chatid)
        [b]{
            [b]using (var webClient = new WebClient())
            [b]{
                [b]var pars = new NameValueCollection();

                [b][b]pars.Add("text", message); // текст который отправляем
                [b]pars.Add("chat_id", chatid.ToString()); // чат id на который идет ответ можете задать свой, либо работать по тем от которых идут сообщения

                [b][b][b]webClient.UploadValues("https://api.telegram.org/bot" + Token + "/sendMessage", pars);

            [b][b]}
        [b]}

       [b][b]// Далее делаем бесконечный цикл использования проверки сообщений для бота, я делаю на примере ConsoleApp так что мне достаточно писать это в main классе, если используете форму можете прописать в Form_Load

[b][b]while (true)
            [b]{
                [b]GetUpdates();
        [b]Thread.Sleep(500);
    [b]}

        [b][b]}
    [b]}
[b]}
[B]
Вот и все, в конце всего что мы сделали у нас получится телеграм бот который имеет пока только 1 команду

s4069038.jpg


[LIKES=1] Скачать [/LIKES]
 
Всем привет, сегодня покажу как написать обычного Telegram бота который будет выполнять какие либо функции.


Начнем:


Для начала нам понадобится написать основу для этого бота
Код:
[b]using System.Collections.Specialized;
[b]using System.Threading;
[b]using System.Net;
[b]using SimpleJSON;
[b]namespace ConsoleApp3
[b]{
    [b]class Program
    [b]{
        [b]public static string Token = @""; // токен от нашего бота
        [b]public static int LastUpdateID = 0; // последний ID полученный от бота
        [b]static void Main(string[] args)
        [b]{
        [b]// Дальше нам понадобится класс SimpleJson его вы создадите самостоятельно
     [b]//   https://github.com/Bunny83/SimpleJSON/blob/master/SimpleJSON.cs

[b][b]// Далее создаем функцию проверки полученных сообщений боту

        [b][b]void GetUpdates()
        [b]{
            [b]using (var webClient = new WebClient())
            [b]{

                [b][b]string response = webClient.DownloadString("https://api.telegram.org/bot" + Token + "/getUpdates" + "?offset=" + (LastUpdateID + 1));

                [b][b]var N = JSON.Parse(response);
                [b]foreach (JSONNode r in N["result"].AsArray)
                [b]{
                    [b]string comm = r["message"]["text"]; // Команда для бота
                    [b]string chat = r["message"]["chat"]["id"]; // Чат ID с кем ведется переписка
                    [b]LastUpdateID = r["update_id"].AsInt; // последний id полученного диалога
                    [b]// Дальше делаем проверку первой полученной команды
                    [b]if (r["message"]["text"] == "/start")
                    [b]{
                        [b]SendMessage("Привет, я бот которого пишут по примеру темы на ********.NET", r["message"]["chat"]["id"].AsInt);
                    [b]}
                [b]}
            [b]}
        [b]}
        [b]// Далее готовим функцию для ответа на команды

        [b][b]void SendMessage(string message, int chatid)
        [b]{
            [b]using (var webClient = new WebClient())
            [b]{
                [b]var pars = new NameValueCollection();

                [b][b]pars.Add("text", message); // текст который отправляем
                [b]pars.Add("chat_id", chatid.ToString()); // чат id на который идет ответ можете задать свой, либо работать по тем от которых идут сообщения

                [b][b][b]webClient.UploadValues("https://api.telegram.org/bot" + Token + "/sendMessage", pars);

            [b][b]}
        [b]}

       [b][b]// Далее делаем бесконечный цикл использования проверки сообщений для бота, я делаю на примере ConsoleApp так что мне достаточно писать это в main классе, если используете форму можете прописать в Form_Load

[b][b]while (true)
            [b]{
                [b]GetUpdates();
        [b]Thread.Sleep(500);
    [b]}

        [b][b]}
    [b]}
[b]}
[B]
Вот и все, в конце всего что мы сделали у нас получится телеграм бот который имеет пока только 1 команду

s4069038.jpg


РКН телегу блочит, поэтому без прокси это работать не будет
 
Каталог сайтов OpenLinks.RU
Назад
Верх