نوشتن ربات تلگرام با زبان برنامه نویسی سی شارپ
سلام دوستان من به تازگی زبان سی شارپ رو دارم یادمیگیریم
و میخوام وارد دنیای ربات نویسی تلگرام بشم میشه کسی که تجربه این مسیر رو داره بهم کمک کنه و دوره ی خوب بهم معرفی کنه و مهارت هایی که باید یادبگیرم رو بهم بگه
١٠ پاسخ
رباتهای تلگرام، در واقع برنامهها و نرمافزارهایی در ابعاد کوچک و با گرافیک بسیار ساده هستند که درون پلتفرم تلگرام اجرا شده و برای از عملیات ساده و گاهی اوقات پیچیده را برای شما انجام میدهند. برای مثال، امروزه رباتهای چت ناشناس، یکی از محبوبترین انواع این رباتها هستند که با استفاده از آنها، شما میتوانید بدون شناخته شدن، پیغامهایی را برای افراد ارسال کنید. علاوه بر این، دسته دیگری از رباتهای چت هستند که امکان چتکردن با یکدیگر در فضایی کاملا ناشناس را برای شما فراهم کردهاند.
ساخت ربات تلگرام با سی شارپ نیازمند این است که یک سرور خوب را برای اجرای کدهای خود تهیه کرده باشید. با متصلکردن این سرور، به ربات بات فادر تلگرام، میتوانید دستورات و کدهای نوشته شده را خیلی راحت در بستر تلگرام اجرا کنید. در بسیاری از موارد، افراد گمان میکنند که رباتهای تلگرامی به طور مستقیم در سرورهای تلگرام اجرا میشوند، ولی این طور نیست، بلکه کدهای مربوط به این رباتها در یک سرور جداگانه اجرا شده و تنها نتیجه آنها در بستر تلگرام برای کاربران ظاهر میشود. برای مثال، در رباتهای چت ناشناس، اطلاعات افراد در یک سرور جداگانه ذخیره میشود.
با ربات ها چه کاری می توان انجام داد؟
از جمله کاربردهای مهم رباتهای تلگرامی میتوان به موارد زیر اشاره کرد:
۱- یکی از انواع جذاب رباتهای تلگرامی، رباتهای مربوط به انواع بازیهای مختلف هستند. با استفاده از آنها، میتوان خیلی راحت در فضای تلگرام مشغول به بازی شد.
2- امروزه فعالان حوزه کریپتوکارنسی یا ارزهای دیجیتال، از طریق رباتهای تلگرامی، امکان شرکت در airdropهای خود را نیز برای کاربران فراهم کردهاند که کاربران از این طریق، میتوانند به کسب درآمد از تلگرام مشغول شوند.
۳- شما میتوانید رباتی را مانند ملوبات طراحی کنید که خیلی راحت، طیف وسیعی از موسیقیها را در اختیار کاربران قرار دهد.
۴- کسبوکارها و فروشگاههای آنلاینی که دارای سایت هستند، بهجای اینکه یک اپلیکیشن را برای خود طراحی کنند، میتوانند رباتی را بسازند که محصولات آنها را در ربات تلگرام به کاربران معرفی کند.
۵- به کمک آموزش ساخت ربات تلگرام با سی شارپ میتوانید رباتی را بسازید که لینک ویدئوها از منابع مختلف را دریافت کرده و آنها را بهصورت نسخه قابل دانلود در اختیار شما قرار دهد.
۶- شرکتها، سازمانها و کسبوکارها، میتوانند رباتهایی را برای فرایند آموزش یا ثبتنام خود ایجاد کرده و فرمهای مربوطه را از این طریق در اختیار کاربران خود قرار دهند.
سه ابزار مهم برای ساخت ربات با سی شارپ
برای ساخت یک ربات تلگرامی با کمک زبان برنامهنویسی سی شارپ نیازمند ابزارهای ویژوال استودیو، کیت ابزار AWS برای ویژوال استودیو و داشتن یک حساب کاربری در AWS خواهید بود. در ادامه توضیحات مربوط به هریک از این سه ابزار را مطالعه خواهید کرد:
ویژوال استودیو: یک پلتفرم جامع برای کدنویسی به زبانهای مختلف و به خصوص آموزش برنامه نویسی به زبان سی شارپ است. شما برای نوشتن کدها و همینطور اجرای آنها به این پلتفرم نیاز دارید.
AWS: یک کیت ابزاری کامل است که دسترسی خوبی به ابزارهای موردنیاز برای کدنویسی یک ربات تلگرامی را به شما ارائه میدهد.
حساب کاربری در AWS: با استفاده از این حساب کاربری میتوانید ربات ساخته شده را خیلی راحت در فضای سرور به اشتراک گذاشته و به کاربران خود دسترسی استفاده از آن را دهید.
ایجاد یک پروژه جدید در ویژوال استودیو
حال در ادامه مسیر آموزش برنامه نویسی ربات تلگرامی قدم بزرگی که باید بردارید این است که کدنویسی آن را آغاز کنید. برای انجام این کار ابتدا باید ویژوال استودیو را روی سیستم خود نصب کنید؛ چراکه در این پلتفرم میتوانید از AWS Lambda استفاده کنید. از طرف دیگر نیازمند این هستید که AWS Toolkit را برای ویژوال استودیو خود دانلود و نصب کنید. در گام بعدی نیازمند این هستید که یک اپلیکیشن AWS Serverless جدید را بسازید. فراموش نکنید که اپلیکیشن شما باید از نوع .NET Core – C# باشد. در گام بعدی نیز باید یک اپلیکیشن خالی و بدون نیاز به تست را انتخاب کنید که این کار مطابق تصویر زیر صورت میگیرد:
کدنویسی تلگرام با #C
حال ما یک پروژه خالی برای آموزش ساخت ربات تلگرام با سی شارپ در اختیار داریم. در قدم بعدی باید پکیجهای nuget را به آن متصل کنیم. برای این کار باید وارد Nuget package manager شده و پکیجهای زیر را به آن متصل کنید:
Bot
Json
Extensions.Logging.Abstactions
Lambda
Core
Lambda.Serialization.Json
Lambda.Core
دریافت توکن تلگرام
اولین قدم برای ساخت ربات تلگرام با سی شارپ این است که توکن تلگرام خود را دریافت کرده و به API این شبکه اجتماعی دسترسی پیدا کنید. برای این کار کافی است که وارد ربات botfather و با اجرای دستور /newbot توکن خود را دریافت کنید. حال باید توکن دریافت شده را تست کرده و مطمئن شوید که درست کار میکند. برای این کار کافی است که قطعه کد زیر را در ویژوال استودیو و پروژه جدیدی که ایجاد کردهاید اجرا کنید:
using Telegram.Bot;
var botClient = new TelegramBotClient(“{YOUR_ACCESS_TOKEN_HERE}”);
var me = await botClient.GetMeAsync();
Console.WriteLine($”Hello, World! I am bot {me.Id} and my name is {me.FirstName}.”);
با اجرای این کد خروجی آن باید چیزی مشابه خروجی زیر باشد:
Hello, World! I am bot 6845241 and my name is MetBot.
تعامل با کاربر از طریق ربات
در آموزش ساخت ربات تلگرام با سی شارپ شما نیازمند این هستید که رباتی را ایجاد کنید تا بتواند با کاربر تعامل داشته باشد. برای این کار نیازمند یک کلاس event listener خواهید بود که میتوانید آن را BotEngine بنامید. این کلاس دارای فیلدی است که چرخه عمر ربات را نگهداری میکند. این کلاس امکان دریافت شی TelegramBotClient را نیز برای شما فراهم میکند:
using Telegram.Bot;
using Telegram.Bot.Exceptions;
using Telegram.Bot.Polling;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
private readonly TelegramBotClient _botClient;
public BotEngine(TelegramBotClient botClient)
{
_botClient = botClient;
}
// Create a listener so that we can wait for messages to be sent to the bot
public async Task ListenForMessagesAsync()
{
using var cts = new CancellationTokenSource();
var receiverOptions = new ReceiverOptions
{
AllowedUpdates = Array.Empty<UpdateType>() // receive all update types
};
_botClient.StartReceiving(
updateHandler: HandleUpdateAsync,
pollingErrorHandler: HandlePollingErrorAsync,
receiverOptions: receiverOptions,
cancellationToken: cts.Token
);
var me = await _botClient.GetMeAsync();
Console.WriteLine($”Start listening for @{me.Username}”);
Console.ReadLine();
}
قطعه کد بالا امکان تعامل با کاربر را در ربات برای شما فراهم میکند. با استفاده از آن میتوانید بهروزرسانیهای موردنیاز در نوشتن ربات با استفاده از سی شارپ را اعمال کنید.
مدیریت خطاها در حین ساخت ربات تلگرام با سی شارپ
چگونه ربات تلگرام بسازیم؟ بهترین رباتی که شما میتوانید در سی شارپ ایجاد کنید رباتی خواهد بود که پیغامهای مربوط به خطاها را نیز به طور کامل به کاربر نشان دهد. برای این کار نیازمند تابع یا متدی هستید که بتواند خطاهای دریافتی را پردازش کرده و بر اساس آن پیغامی را برای کاربر شما نمایش دهد. قطعه کد زیر میتواند این کار را برای شما انجام دهد:
private async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)
{
// Only process Message updates
if (update.Message is not { } message)
{
return;
}
// Only process text messages
if (message.Text is not { } messageText)
{
return;
}
Console.WriteLine($”Received a ‘{messageText}’ message in chat {message.Chat.Id}.”);
}
private Task HandlePollingErrorAsync(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;
}
نحوه مستقر کردن ربات تلگرامی در زبان برنامهنویسی سی شارپ
پس از ساخت ربات تلگرام با سی شارپ نیازمند این خواهید بود که ربات تلگرامی خود را در سرور مستقر کرده و به این ترتیب بتوانید آن را در اختیار کاربران خود قرار دهید. فرایند انجام این کار از مراحل زیر تشکیل شده است:
در گام نخست باید وارد پنل مدیریتی AWS شده و گزینه API Gateway را پیدا کنید. با کلیک روی این گزینه، میتوانید به موارد متعددی دسترسی داشته باشید که باید از میان آنها گزینه new Rest API را انتخاب کنید. این گزینه به شما اجازه میدهد تا یک Rest API جدید را برای ربات خود ایجاد کنید.
حال اگر قصد دارید از طریق lambda function کد خود را اجرا کنید باید یک متد جدید ANY ایجاد کنید.
در ادامه شما باید ربات خود را از طریق ویژوال استودیو تست کنید که نحوه انجام این کار و کدهای موردنیاز برای آن را در بخش قبلی توضیح دادیم.
در قدم آخر برای اینکه بتوانید ربات تلگرامی خود را در اختیار و در دسترس کاربران قرار دهید باید یک webhook را برای ربات ایجاد کنید.
برای ایجاد webhook تنها کاری که باید انجام دهید این است که آدرس https://api.telegram.org/bot<token>/setWebHook?url=<Your url> را مورداستفاده قرار دهید. دقت کنید که در این آدرس شما باید توکنی که از تلگرام دریافت کردهاید را بهجای عبارت token قرار دهید تا آدرس شما بهدرستی کار کند.
در صورتی که تمامی این مراحل را به شکلی درست طی کرده باشید سایت تلگرام پیغامی را برای شما ارسال خواهد کرد که به شکل {“ok”:true,”result”:true,”description”:”Webhook was set”} خواهد بود. این پیغام به این معنی است که webhook شما بهدرستی ایجاد شده و مشکلی در کارکرد آن وجود ندارد.
آیا امکان ایجاد چندین دستور در ربات تلگرام وجود دارد؟
بله اگر با رباتهای تلگرامی آشنایی داشته باشید حتما میدانید که دستوراتی که در این رباتها اجرا میشوند با / شروع میشوند. حال تنها کاری که شما باید انجام دهید این است که منطق برنامه خود را به کمک یک دستور سوئیچ به شکلی تغییر دهید که کاربر بتواند دستورات مختلف را وارد کرده و با واردکردن هر دستور متدهای مربوط به آن در کدهای شما اجرا شوند.
بررسی عملکرد صحیح ربات
بعد از اینکه منطق برنامه و ربات خود را پیادهسازی کردید نیازمند این خواهید بود که بررسی کنید آیا کدهای شما به شکلی درست کار میکنند یا خیر؟ برای اینکه بتوانید این کار را انجام دهید نیازمند قطعه کد زیر خواهید بود:
lambdaClient = new AmazonLambdaClient();
connect = new Connect();
public async Task<string> FunctionHandler(JObject request, ILambdaContext context)
{
LambdaLogger.Log(“REQUEST: ” + JsonConvert.SerializeObject(request));
try
{
var updateEvent = request.ToObject<Update>();
await connect.RespFromTelegram(updateEvent);
}
catch (Exception e)
{
LambdaLogger.Log(“exception: ” + e.Message);
}
return “Hello from AWS Lambda” + DateTimeOffset.UtcNow.ToString();
}
با اجرای این کد میتوانید فرایند تست ربات خود را آغاز کرده و مطمئن شوید که همه چیز بهدرستی کار میکند.
با ربات ها چه کاری می توان انجام داد؟
از جمله کاربردهای مهم رباتهای تلگرامی میتوان به موارد زیر اشاره کرد:
۱- یکی از انواع جذاب رباتهای تلگرامی، رباتهای مربوط به انواع بازیهای مختلف هستند. با استفاده از آنها، میتوان خیلی راحت در فضای تلگرام مشغول به بازی شد.
2- امروزه فعالان حوزه کریپتوکارنسی یا ارزهای دیجیتال، از طریق رباتهای تلگرامی، امکان شرکت در airdropهای خود را نیز برای کاربران فراهم کردهاند که کاربران از این طریق، میتوانند به کسب درآمد از تلگرام مشغول شوند.
۳- شما میتوانید رباتی را مانند ملوبات طراحی کنید که خیلی راحت، طیف وسیعی از موسیقیها را در اختیار کاربران قرار دهد.
۴- کسبوکارها و فروشگاههای آنلاینی که دارای سایت هستند، بهجای اینکه یک اپلیکیشن را برای خود طراحی کنند، میتوانند رباتی را بسازند که محصولات آنها را در ربات تلگرام به کاربران معرفی کند.
۵- به کمک آموزش ساخت ربات تلگرام با سی شارپ میتوانید رباتی را بسازید که لینک ویدئوها از منابع مختلف را دریافت کرده و آنها را بهصورت نسخه قابل دانلود در اختیار شما قرار دهد.
۶- شرکتها، سازمانها و کسبوکارها، میتوانند رباتهایی را برای فرایند آموزش یا ثبتنام خود ایجاد کرده و فرمهای مربوطه را از این طریق در اختیار کاربران خود قرار دهند.
سه ابزار مهم برای ساخت ربات با سی شارپ
برای ساخت یک ربات تلگرامی با کمک زبان برنامهنویسی سی شارپ نیازمند ابزارهای ویژوال استودیو، کیت ابزار AWS برای ویژوال استودیو و داشتن یک حساب کاربری در AWS خواهید بود. در ادامه توضیحات مربوط به هریک از این سه ابزار را مطالعه خواهید کرد:
ویژوال استودیو: یک پلتفرم جامع برای کدنویسی به زبانهای مختلف و به خصوص آموزش برنامه نویسی به زبان سی شارپ است. شما برای نوشتن کدها و همینطور اجرای آنها به این پلتفرم نیاز دارید.
AWS: یک کیت ابزاری کامل است که دسترسی خوبی به ابزارهای موردنیاز برای کدنویسی یک ربات تلگرامی را به شما ارائه میدهد.
حساب کاربری در AWS: با استفاده از این حساب کاربری میتوانید ربات ساخته شده را خیلی راحت در فضای سرور به اشتراک گذاشته و به کاربران خود دسترسی استفاده از آن را دهید.
ایجاد یک پروژه جدید در ویژوال استودیو
حال در ادامه مسیر آموزش برنامه نویسی ربات تلگرامی قدم بزرگی که باید بردارید این است که کدنویسی آن را آغاز کنید. برای انجام این کار ابتدا باید ویژوال استودیو را روی سیستم خود نصب کنید؛ چراکه در این پلتفرم میتوانید از AWS Lambda استفاده کنید. از طرف دیگر نیازمند این هستید که AWS Toolkit را برای ویژوال استودیو خود دانلود و نصب کنید. در گام بعدی نیازمند این هستید که یک اپلیکیشن AWS Serverless جدید را بسازید. فراموش نکنید که اپلیکیشن شما باید از نوع .NET Core – C# باشد. در گام بعدی نیز باید یک اپلیکیشن خالی و بدون نیاز به تست را انتخاب کنید
حال ما یک پروژه خالی برای آموزش ساخت ربات تلگرام با سی شارپ در اختیار داریم. در قدم بعدی باید پکیجهای nuget را به آن متصل کنیم. برای این کار باید وارد Nuget package manager شده و پکیجهای زیر را به آن متصل کنید:
Bot
Json
Extensions.Logging.Abstactions
Lambda
Core
Lambda.Serialization.Json
Lambda.Core
دریافت توکن تلگرام
اولین قدم برای ساخت ربات تلگرام با سی شارپ این است که توکن تلگرام خود را دریافت کرده و به API این شبکه اجتماعی دسترسی پیدا کنید. برای این کار کافی است که وارد ربات botfather و با اجرای دستور /newbot توکن خود را دریافت کنید. حال باید توکن دریافت شده را تست کرده و مطمئن شوید که درست کار میکند. برای این کار کافی است که قطعه کد زیر را در ویژوال استودیو و پروژه جدیدی که ایجاد کردهاید اجرا کنید:
using Telegram.Bot;
var botClient = new TelegramBotClient(“{YOUR_ACCESS_TOKEN_HERE}”);
var me = await botClient.GetMeAsync();
Console.WriteLine($”Hello, World! I am bot {me.Id} and my name is {me.FirstName}.”);
با اجرای این کد خروجی آن باید چیزی مشابه خروجی زیر باشد:
Hello, World! I am bot 6845241 and my name is MetBot.
برای نوشتن ربات با استفاده از سی شارپ در اولین مرحله نیازمند دریافت API از این پلتفرم است. برای دریافت این API ابتدا باید در ربات بات فادر که یک ربات تلگرامی برای خود مجموعه تلگرام است ثبتنام کرده و سپس یک کد مخصوص به خود را دریافت کنید. در قدم بعدی باید ویژوال استودیو و کیت ابزار AWS را روی سیستم خود نصب کنید. مرحله بعدی در آموزش برنامه نویسی سی شارپ مربوط به نصب پکیجهای موردنیاز برای ساخت ربات است.
با نصب این پکیجها فایلی روی سیستم شما باز میشود که میتوانید روی این فایل کلیک کرده و آن را شخصیسازی کنید. در این فایل شما میتوانید کلاسهای مخصوص به ربات خود را ایجاد کرده و متغیرهای دلخواه را نیز در آنها تعریف کنید. یکی از این کلاسها برای اتصال به ربات تلگرام و دیگری برای برنامهنویسی منطق ربات شما استفاده میشوند.
ربات های تلگرام
رباتهای تلگرام، در واقع برنامهها و نرمافزارهایی در ابعاد کوچک و با گرافیک بسیار ساده هستند که درون پلتفرم تلگرام اجرا شده و برای از عملیات ساده و گاهی اوقات پیچیده را برای شما انجام میدهند. برای مثال، امروزه رباتهای چت ناشناس، یکی از محبوبترین انواع این رباتها هستند که با استفاده از آنها، شما میتوانید بدون شناخته شدن، پیغامهایی را برای افراد ارسال کنید. علاوه بر این، دسته دیگری از رباتهای چت هستند که امکان چتکردن با یکدیگر در فضایی کاملا ناشناس را برای شما فراهم کردهاند.
ساخت ربات تلگرام با سی شارپ نیازمند این است که یک سرور خوب را برای اجرای کدهای خود تهیه کرده باشید. با متصلکردن این سرور، به ربات بات فادر تلگرام، میتوانید دستورات و کدهای نوشته شده را خیلی راحت در بستر تلگرام اجرا کنید. در بسیاری از موارد، افراد گمان میکنند که رباتهای تلگرامی به طور مستقیم در سرورهای تلگرام اجرا میشوند، ولی این طور نیست، بلکه کدهای مربوط به این رباتها در یک سرور جداگانه اجرا شده و تنها نتیجه آنها در بستر تلگرام برای کاربران ظاهر میشود. برای مثال، در رباتهای چت ناشناس، اطلاعات افراد در یک سرور جداگانه ذخیره میشود.
سلام
به نظرم سی شارپ خیلی برای ربات تلگرام مناسب نیست.
من بهت پایتون رو پیشنهاد میکنم که هم کارات سریع تر پیش میره هم زبان آسون تریه هم به راحتی میتونی توی پایتون حوضه برنامه نویسیت رو عوض کنی.
اگر سوالی داشتی خواستی گپو گفتی داشته باشیم آیدی تلگرامم: @mmd_payy
برای ورود به دنیای رباتنویسی تلگرام با زبان سیشارپ، میتوانید از دورههای آموزشی مختلفی استفاده کنید که به شما مهارتهای لازم را آموزش میدهند. در ادامه، برخی از دورهها و مهارتهای ضروری برای شروع این مسیر را معرفی میکنم.
### دورههای آموزشی1. **دوره آموزش نوشتن ربات تلگرام (توسینسو)**:
- این دوره جامع شامل آموزش ساخت ربات تلگرام از مقدماتی تا پیشرفته است. شما با مفاهیم اولیه و نحوه استفاده از API تلگرام آشنا خواهید شد.
- **لینک دوره**: [توسینسو](https://tosinso.com/courses/create-telegram-robots)
2. **آموزش ساخت ربات تلگرام با PHP (لرن فایلز)**:
- اگرچه این دوره به زبان PHP است، اما میتواند به شما ایدههای خوبی درباره ساخت رباتها بدهد و تکنیکهای مشابهی را یاد بگیرید.
- **لینک دوره**: [لرن فایلز](https://learnfiles.com/course/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%B1%D8%A8%D8%A7%D8%AA-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%A7-php/)
3. **آموزش ساخت ربات تلگرام با پایتون (هم رویش)**:
- این دوره به شما کمک میکند تا با استفاده از زبان پایتون و کتابخانه Python-Telegram-Bot رباتهای کاربردی بسازید.
- **لینک دوره**: [هم رویش](https://hamruyesh.com/product/telegram-bot-with-python-tutorial/)
1. **آشنایی با API تلگرام**:
- برای ارتباط با رباتها و مدیریت آنها، باید با API تلگرام آشنا شوید.
2. **برنامهنویسی سیشارپ**:
- تسلط بر زبان سیشارپ برای نوشتن کدهای ربات ضروری است.
3. **کار با JSON**:
- بسیاری از دادهها در ارتباطات ربات تلگرام به فرمت JSON ارسال و دریافت میشوند.
4. **مدیریت وبهوکها**:
- یادگیری نحوه تنظیم وبهوک برای دریافت پیامها و رویدادها.
5. **طراحی رابط کاربری**:
- توانایی طراحی و پیادهسازی رابط کاربری برای تعامل بهتر کاربران با ربات.
- **پروژههای عملی**: سعی کنید در طول یادگیری، پروژههای عملی انجام دهید تا تجربه واقعی کسب کنید.
- **پشتیبانی و جامعه**: به دنبال منابع آنلاین و جوامع برنامهنویسی باشید که بتوانید سوالات خود را مطرح کنید و از تجربیات دیگران بهرهمند شوید.
با دنبال کردن این دورهها و یادگیری مهارتهای ذکر شده، میتوانید به راحتی وارد دنیای رباتنویسی تلگرام شوید.
سلام
چنل یوتوب programmer boy آموزش گذاشته در این رابطه