مجموعه آموزشی پی استور - https://programstore.ir

آموزش ساخت ربات تلگرام با سی شارپ – چگونه در 4 مرحله با #C ربات تلگرام بسازیم؟

در این بخش از آموزش های پی استور، به آموزش ساخت ربات تلگرام با سی شارپ خواهیم پرداخت. شاید اینطور به نظر برسد که ایجاد ربات تلگرام در سی شارپ سخت است، اما می خواهیم نشان دهیم که اینطور نیست. در این مقاله آموزشی نمونه ای از نوشتن ربات با استفاده از سی شارپ #C را بیان می کنیم. اگر علاقه مند به ساخت ربات تلگرام هستید و سی شارپ نیز کار کرده اید پس با ما همراه باشید.

مقدمه

تلگرام یکی از محبوب‌ترین پیام رسان‌ها در شبکه‌های اجتماعی است که بیش از 600 میلیون کاربر دارد. از ویژگی های اصلی تلگرام، امنیت آن است که به گفته پاول دوروف “Pavel Durov”، تمام مکاتبات بین کاربران رمزگذاری شده و هیچ کس به پیام های شما دسترسی نخواهد داشت. تلگرام یک اپلیکیشن پیام رسان، محبوب است. اگرچه تلگرام در سال 2013 تأسیس شده، اما به رقیبی جدی برای غول‌های پیام‌رسان واتس‌اپ و فیسبوک تبدیل شده است. پیام رسان تلگرام بیشتر بر روی رمزگذاری و حریم خصوصی تمرکز می کند.

تلگرام از نظر هوش مصنوعی پیشتاز است و کاربران را تشویق می‌کند تا ربات‌های تلگرامی تخصصی بسازند و از آن استفاده کنند، تلگرام هنوز بازار رسمی برای این ربات‌ها ایجاد نکرده است. این پیام رسان هنوز در دنیا به اندازه فیس‌بوک یا واتس‌اپ شناخته شده نیست، اما تلگرام به دلیل ویژگی‌های زیر محبوب شده است:

اگر برنامه های سمت کاربران و سمت سرور را به عنوان برنامه های اصلی تلگرام بشناسیم باید ربات ها را به عنوان برنامه های ثالث در نظر بگیریم که در داخل تلگرام اجرا می شوند. کاربران می توانند با ارسال پیام، دستورات و درخواست های درون خطی با ربات ها تعامل داشته باشند. ربات ها با استفاده از درخواست های HTTPS به Bot API کنترل می شوند. امروز می خواهیم در مورد یک ویژگی جالب در تلگرام، یعنی ساخت ربات ها صحبت کنیم. پیام رسان تلگرام، API خود را برای توسعه دهندگان باز کرده و اکنون همه می توانند ربات خود را ایجاد و مدیریت کنند.

ربات های تلگرام

در ادامه آموزش ساخت ربات تلگرام با سی شارپ ابتدا در رابطه با ربات های تلگرام صحبت خواهیم کرد سپس یک bot در تلگرام ایجاد خواهیم کرد و با استفاده از کتابخانه Telegram Bot نحوه کدنویسی ربات تلگرام را آموزش خواهیم داد. همانطور که قبلاً هم اشاره شد برای درک این آموزش لازم است با زبان برنامه نویسی #C آشنا باشید. برای آموزش بهتر، می توانید مجموعه آموزش برنامه نویسی سی شارپ فرادرس را تهیه و مطالعه نمایید.

ربات های تلگرام

ربات ها برنامه های کوچکی هستند که در داخل تلگرام اجرا می شوند و یک نوع سیستم خودکار محسوب می شوند. توسعه دهندگان و برنامه نویسان با استفاده از Telegram Bot API ربات می سازند. خود تلگرام دارای چند ربات رسمی برای اهداف خاص است، به عنوان مثال، gif@ وGDPRbot@. مالکان کانال های تلگرام می تواند یک یا چند ربات را برای خودکارسازی فرآیندها در کانال خود اجرا کنند.

چت بات ها “chatbot” یک نوع ربات خاص هستند. ولی، کاربردهای زیادی برای ربات ها وجود دارد. اگر می‌توانید راهی برای خودکارسازی یک فرآیند در تلگرام تجسم کنید، احتمالاً می‌توانید رباتی را پیدا کنید یا بنویسید تا کار را برای شما انجام دهد. به همین دلیل است که توسعه دهندگان تلگرام ادعا می کنند که ربات های تلگرام می توانند هر کاری را انجام دهند.

به عنوان مثال، ربات‌ها می‌توانند بازی‌های HTML5 را به کاربران خود پیشنهاد دهند تا به صورت انفرادی بازی کنند یا در گروه‌ها و چت‌های انفرادی با یکدیگر رقابت کنند. ربات‌ها می‌توانند امتیازهای بالا را برای هر بازی انجام شده در هر چت پیگیری کنند. هر زمان که یک رهبر جدید در یک بازی وجود داشته باشد، ربات‌ها می‌توانند به سایر اعضای بازی در چت اطلاع دهند که باید آن را افزایش دهند.

نبود بازار رسمی و ابزار رسمی ایجاد ربات، استقبال از ربات های تلگرام را کند کرده است. امیدواریم که تلگرام این حذفیات فاحش را زودتر اصلاح کند. در این بین، یا باید ربات خود را بسازید یا یک ربات موجود پیدا کنید که آنچه می خواهید را انجام دهد.

با ربات ها چه کاری می توانم انجام دهم؟

قبل از آموزش ساخت ربات تلگرام با سی شارپ، برای اینکه بدانیم ربات های تلگرام چه کاری انجام می دهند می توان چند نمونه از موارد استفاده ربات های تلگرام را بصورت زیر نام برد:

در ادامه می توانید لیستی از ربات های تلگرام پرکاربرد را از طریق لینک زیر مشاهده کنید.

ربات ها چگونه کار می کنند؟

ربات ها چگونه کار می کنند؟

در اصل، ربات‌های تلگرام حساب‌های خاصی هستند که برای تنظیم آنها نیازی به شماره تلفن نیست و کاربران می توانند از دو طریق با ربات ها تعامل داشته باشند:

پیام ها، دستورات و درخواست های ارسال شده توسط کاربران به سیستم نرم افزاری در حال اجرا بر روی سرورهای تلگرام ارسال می شود. سرور واسطه تمامی رمزگذاری و ارتباط با API تلگرام را انجام می دهد. با این سرور از طریق یک رابط HTTPS ساده که یک نسخه ساده شده از API تلگرام را ارائه می دهد، ارتباط برقرار می شود که آن رابط را Bot API می نامیم.

1- ایجاد ربات و گرفتن توکن API تلگرام

در اولین مرحله از آموزش ساخت ربات تلگرام با سی شارپ به یک توکن API نیاز داریم. API یعنی واسط برنامه نویسی کاربردی و توکن API هم یک شناسه یونیک برای ارتباط اپلیکشن با زبان برنامه نویسی است. برای گرفتن توکن API وارد اکانت تلگرام خودتان شوید و عبارت BotFather@ را جستجو کنید. پس از جستجو بر روی BotFather کلیک کنید:

آموزش ساخت ربات تلگرام با جاوا - گرفتن API از تلگرام

START کنید تا لیست دستورات BotFather را مشاهده کنید:

آموزش ساخت ربات تلگرام با جاوا

برای ایجاد Bot جدید می توانید روی newbot کلیک کنید یا عبارت newbot/ را تایپ کنید و Enter را بزنید. در این مرحله برای بات جدید یک Username خواسته می شود. این نام را به دلخواه وارد کنید.

نکته: در آخر نام کاربری عبارت bot را درج کنید. به عنوان مثال نام کاربری: pstoreprograming_bot

گرفتن توکن API

توکن API ربات تلگرام به‌صورت کاراکترهایی از حروف و اعداد است. می توانید برای ربات description یا تصویر داشته باشید کافیست در خط فرمان setdescription/ و setuserpic/ را کامل کنید.

آموزش ساخت ربات تلگرام با جاوا - چگونه با استفاده از جاوا ربات تلگرام ایجاد کنیم؟

2- نصب کتابخانه تلگرام بات بر روی سی شارپ

در دومین مرحله از آموزش ساخت ربات تلگرام با سی شارپ باید کتابخانه های لازم را بر روی سی شارپ نصب کنیم. اکنون که یک ربات داریم و توکن API آن را هم داریم. وقت آن است که به ربات خودمان جان بدهیم. یک پروژه کنسولی برای ربات خود ایجاد کنید. حداقل از NET Framework 4.6.1 یا NET Core 3.1+ باید استفاده کنید. معمولاً نسخه ویژوال استادیو 2019 اینترپرایس نسخه خوبی برای کار ماست. پس از ایجاد پروژه کنسولی بایستی کتابخانه Telegram.Bot را روی آن نصب کنیم. برای این کار در قسمت View -> Other Windows -> Package Manager Console در پنجره باز شده عبارت زیر را تایپ کنید تا مانند تصویر زیر کتابخانه Telegram.Bot بر روی پروژه نصب شود.

Install-Package Telegram.Bot -Version 17.0.0

ورژن نصبی در این آموزش نسخه 17 است ولی می توانید نسخه های دیگری را از این کتابخانه نصب کنید. این فایل ها از مخزن NuGet براحتی نصب می شود.

نصب کتابخانه تلگرام بات بر روی سی شارپ

همچنین برای پروژه خود نیاز به کتابخانه Telegram.Bot.Extensions.Polling برای تعامل بیشتر ربات تلگرام با کاربران را داریم. پس مانند نصب قبلی عبارت زیر را برای نصب این کتابخانه تایپ کنید:

Install-Package Telegram.Bot.Extensions.Polling -Version 1.0.0

خوب تا این مرحله از آموزش ساخت ربات تلگرام با سی شارپ توانستیم کتابخانه های مربوط به برنامه نویسی را در پروژه خودمان نصب کنیم. حال نوبت آن شده که با استفاده از کدنویسی با ربات خود ارتباط برقرار کنیم.

3- برنامه نویسی ارتباط ربات تلگرام با سی شارپ

در اولین مرحله از کدنویسی در پروژه ایجاد شده در فایل Program.cs بایستی Using های Telegram Bot را در پروژه تعریف کنید بطور کلی ما از Using های زیر در آموزش ساخت ربات تلگرام با سی شارپ استفاده می کنیم:

using Telegram.Bot;
using Telegram.Bot.Exceptions;
using Telegram.Bot.Extensions.Polling;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;

حالا می توانید توکن API خود را جایگزین کنید برای این منظور در خط پایین class Program عبارت زیر را تایپ کنید:

public static TelegramBotClient botClient = new TelegramBotClient("توکن API تلگرام");

حال برای ارتباط می توانید از یک Task تعریف کنید و در آن کدهای ارتباط با تلگرام را فراخوانی کنید. برای این منظور در خط پایین Main یک متد با نام RunBot تعریف می کنیم:

 private static async Task RunBot()
 {
    var me = await botClient.GetMeAsync();
    Console.WriteLine($"Hello, World! I am user {me.Id} and my name is {me.FirstName}.");
}

در این متد از خاصیت GetMeAsync در botClient یک متغیر ایجاد می کنیم تا اطلاعات مربوط به آن را در Console نمایش دهیم. حال اگر بخواهیم این متد را در Main فراخوانی کنیم بصورت زیر عمل خواهیم کرد:

static void Main(string[] args)
{
     Task.Run(() => RunBot());
     Console.ReadLine();
}

به طور کلی اگر نام پروژه را TelegramCSharp نام گذاری کنید کل Program.cs بصورت زیر خواهد بود.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Telegram.Bot;
using Telegram.Bot.Exceptions;
using Telegram.Bot.Extensions.Polling;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;


namespace TelegramCSharp
{
    class Program
    {
        public static TelegramBotClient botClient = new TelegramBotClient("توکن API تلگرام");

        static void Main(string[] args)
        {
             Task.Run(() => RunBot());
             Console.ReadLine();
        }
         private static async Task RunBot()
         {
             var me = await botClient.GetMeAsync();

            Console.WriteLine($"Hello, World! I am user {me.Id} and my name is {me.FirstName}.");


        }
    }
}

حال اگر برنامه را اجرا کنید (یک روش برای عبور از فیلتر داشته باشید) در صفحه کنسول می توانید اطلاعات ربات خود را ببینید:

اطلاعات ربات تلگرام در صفحه کنسول #C

4- برنامه نویسی ایجاد چت بات در سی شارپ

تا این مرحله از آموزش ساخت ربات تلگرام با سی شارپ یاد گرفتیم چگونه یک ارتباط داشته باشیم حال وقت آن رسیده که با استفاده از فرستادن اطلاعات از تلگرام به سی شارپ و بالعکس یک تعامل برقرار کنیم. بصورت کلی قرار است مانند تصویر زیر یک ری اکشنی از برنامه نویسی ربات داشته باشیم.

برنامه نویسی ایجاد چت بات در سی شارپ

برای این پرسش و پاسخ لازم است کدهای زیر را در program.cs کپی کنید و برنامه را اجرا کنید:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Telegram.Bot;
using Telegram.Bot.Exceptions;
using Telegram.Bot.Extensions.Polling;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;


namespace TelegramCSharp
{
    class Program
    {
        public static TelegramBotClient botClient = new TelegramBotClient("توکن API تلگر");

        static void Main(string[] args)
        {
             Task.Run(() => RunBot());
             Console.ReadLine();
        }
         private static async Task RunBot()
         {
            using var cts = new CancellationTokenSource();

            // StartReceiving does not block the caller thread. Receiving is done on the ThreadPool.
            var receiverOptions = new ReceiverOptions
            {
                AllowedUpdates = { } // receive all update types
            };
            botClient.StartReceiving(
                HandleUpdateAsync,
                HandleErrorAsync,
                receiverOptions,
                cancellationToken: cts.Token);

            var me = await botClient.GetMeAsync();

            Console.WriteLine($"Start listening for @{me.Username}");
            Console.ReadLine();

            // Send cancellation request to stop bot
            cts.Cancel();


        }
        async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)
        {
            // Only process Message updates: https://core.telegram.org/bots/api#message
            if (update.Type != UpdateType.Message)
                return;
            // Only process text messages
            if (update.Message!.Type != MessageType.Text)
        return;

            var chatId = update.Message.Chat.Id;
            var messageText = update.Message.Text;

            Console.WriteLine($"Received a '{messageText}' message in chat {chatId}.");

            // Echo received message text
            Message sentMessage = await botClient.SendTextMessageAsync(
                chatId: chatId,
                text: "You said:\n" + messageText,
                cancellationToken: cancellationToken);
        }

        Task HandleErrorAsync(ITelegramBotClient botClient, Exception exception, CancellationToken cancellationToken)
        {
            var ErrorMessage = exception switch
            {
        ApiRequestException apiRequestException
            => $"Telegram API Error:\n[{apiRequestException.ErrorCode}]\n{apiRequestException.Message}",
        _ => exception.ToString()
              };

        Console.WriteLine(ErrorMessage);
        return Task.CompletedTask;
         }


     }
}

به همین ترتیب یک تعامل بین ربات و کاربر برقرار خواهد شد. آموزش ساخت ربات تلگرام با سی شارپ یک مبحث جامع است که در این آموزش قسمت های مهم و کلیدی این مبحث آموزش داده شد. برای آموزش تکمیلی و جامع در این زمینه می توانید فیلم ساخت ربات تلگرام با سی شارپ فرادرس را تهیه و مطالعه کنید.

سخن پایانی در مورد آموزش ساخت ربات تلگرام با سی شارپ

در این پست با آموزش ساخت ربات تلگرام با سی شارپ در خدمت شما عزیزان بودیم. این آموزش برای افرادی که علاقه مند به کار ساخت ربات های تلگرامی هستند مفید خواهد بود و بدیهی است این آموزش یک آموزش برای شروع کار برنامه نویسی ربات است و برای تکمیل تخصص نیاز به اطلاعات و آموزش های تکمیلی و تکرار و تمرین هست. در پایان پیشنهاد می کنیم مقاله ما را در زمینه کسب درآمد از راه برنامه نویسی [8] را نیز در فرصتی مناسب مطالعه کنید. منتظر نظرات و پیشنهادات شما عزیزان هستیم. موفق و پیروز باشید.

پروژه پردازش تصویر در سی شارپ #C [9]

پروژه پردازش تصویر در سی شارپ #C

در این بخش پروژه ای تحت عنوان پردازش تصویر در سی شارپ #C تدوین شده است که به کار بر روی تصاویر و اعمال تغییرات بر روی آن ها می پردازد.