اطلاعات پست

  • مسعود سعادتی

    مدرس دوره

    مسعود سعادتی

    برنامه نویس و طراح وب سایت

  • تاریخ شروع : یکشنبه 14 اردیبهشت 1399
  • تاریخ به روز رسانی : جمعه 9 خرداد 1399
برنامه نویسی ربات تلگرام با سی شارپ

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

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


ربات تلگرام یکی از قابلیت های پرکاربرد تلگرام دارای امکاناتی است که می تواند به کمک دانش برنامه نویسی برای اهداف و کارهای مختلفی ساخته شوند . امروزه ربات های مختلفی در زمینه های مختلف فعالیت می کنند که براساس نیاز، برنامه نویسی شده اند.

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

گام به گام تا ساخته شدن ربات تلگرام

گام اول :

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

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


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

مطلب مهمی که در رابطه با تصویر بالا باید به آن توجه کنید این است که اولا تمامی ارتباطات بین سرور شما و سرور تلگرام در بستر https  اتفاق می افتد یعنی بصورت امن ارسال و دریافت صورت می گیرد و این امر یک الزام از سمت تلگرام می باشد. بنابراین سرور شما باید مجهز به ssl  باشد.
دوم اینکه اطلاعات ارسالی و دریافتی همگی با فرمت json  هستند که در قسمت کدنویسی با این فرمت آشنا خواهیم شد.

گام دوم :

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

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

وب هوک چیست ؟

"وب هوک در توسعه وب روشی برای تقویت یا تغییر رفتار یک صفحه وب یا برنامه وب با لینک های برگشتی سفارشی است. این تماسهای برگشتی ممکن است توسط کاربران و توسعه دهندگان شخص ثالث که لزوماً وابسته به وب سایت یا برنامه اصلی نیستند ، حفظ ، اصلاح و مدیریت شود." در واقع تلگرام توسط پیکره بندی وب هوک درخواست های کاربران را به سایت شما ارسال می کند.
تلگرام توسط لینک زیر آدرس کنترل کننده ی شما را برای ربات شما ثبت می کند.

https://api.telegram.org/botToken/setWebhook?url=https://monirsoft.ir/bot/updates

 

که در آن به جای Token شناسه (توکن) ربات خود و در مقابل url آدرس کنترل سایت شما قرار می گیرد.

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

 برنامه نویسی ربات تلگرام با  زبان سی شارپ

در مدل mvc یک کنترلر ایجاد کنید و در داخل کلاس آن یک اکشن متد بسازید. این اکشن همان کنترل کننده ی درخواست ها است که شما در تنظیم وب هوک به تلگرام معرفی کردید. این اکشن به صورت HttpGet کار می کند و تمامی درخواست ها از سمت تلگرام به این اکشن فرود می آیند. بنابراین کد سی شارپ جهت دریافت درخواست وارد شده به این متد را در اولین خط این متد به صورت زیر می نویسیم.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace RobotTelegram.Controllers
{
    public class BotController : Controller
    {

        private string Token
        {
            get { return ""; }
        }


        // GET: Bot
        public void GetUpdates()
        {
            Stream request = null;
            try
            {
                request = Request.InputStream;
                string responsString = "";

                using (StreamReader sr = new StreamReader(request))
                {
                     responsString = sr.ReadToEnd();
                }
            }
            catch
            {
            }
            finally
            {
                request?.Dispose();
            }
        }
    }
}

 

کد بالا درخواست رسیده شده از سمت تلگرام را دریافت می کند.

جهت کد نویسی و کار با api ها و عملیات پیشرفته پیشنهاد می کنیم ویدئوهای دوره آموزشی ساخت ربات با زبان سی شارپ را ببینید.

اکنون ببینید

نظرات کاربران