انجمن برنامه نویسان البرز

تبلیغات

ساخت ربات تلگرام در سی شارپ – بخش سوم

ساخت ربات تلگرام در سی شارپ – بخش سوم


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

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

سورس کد این جلسه را میتوانید از طریق لینک زیر دانلود کنید:

دانلود سورس پروژه در سی شارپ




کلمات کلیدی :

نظر بدهید

105 دیدگاه برای “ساخت ربات تلگرام در سی شارپ – بخش سوم

  • امیر گفته
    12 جولای 17

    آموزشتون عااالیه. دستتون درد نکنه. منتظر بخش های بعدی هم هستیم

    • علیرضا صبوئی گفته
      12 جولای 17

      ممنون دوست خوبم

      • مهراد گفته
        12 جولای 17

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

  • mohammad گفته
    12 جولای 17

    سلام …ممنون میشم در قسمت بعدی که دیتابیس رو توضیح میدید ….نحوه ذخیره عکس در دیتابیس و مشخصات کاربر رو هم توضیح بدید ….ممنون

  • سید مرتضی گفته
    12 جولای 17

    سلام
    از آموزش خوبتون ممنون
    یه سوال داشتم می خواستم بدونم چجوری میشه یه متن (String) رو در چند سطر (خط) نوشت؟؟
    مثلا:
    ـــــــــــــــــــــــــــــــــــــــــ
    سلام
    به بات من خوش اومدین
    برای راهنما روی /help کلیک کنید
    ـــــــــــــــــــــــــــــــــــــــــ
    من واقعا لازم دارم اگه میشه سریع جوابمو بدین
    بازم ممنون

    • علیرضا صبوئی گفته
      12 جولای 17

      دوست خوبم سلام. برای ایجاد خط جدید در استرینگ میتونید از این دستور استفاده کنید:
      string test=”Salam”+Environment.NewLine+”Welcome To My Bot”+Environment.NewLine

      با استفاده از دستور Environment.NewLine میتوانید خط جدید ایجاد کنید

      • سید مرتضی گفته
        12 جولای 17

        خیلی ممنون آقای صبوئی

        قسمت چهار رو هرچه سریع تر منتشر کنید من و تمام دوستام منتظریم که آموزش رو دانلود کنیم و آموزش ببینیم

      • سید مرتضی گفته
        12 جولای 17

        واقعا ممنون از این که جواب ما رو میدین

        قسمت ۴ رو هم هرچه سریع تر قرار بدید

        • علیرضا صبوئی گفته
          12 جولای 17

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

      • مهراد گفته
        12 جولای 17

        این دستور رو در کدام قسمت قرار بدیم؟

      • مهراد گفته
        12 جولای 17

        این دستور رو اگر بخوایم تو دستور
        bot.sendmessage(e.Message.Chat.Id””)
        باید چی کار کنیم؟؟؟؟

    • عدالت گفته
      12 جولای 17

      در هر کجای رشته که خواستین به خط جدید منتقل بشه کافیه بنویسین \r\n
      مثال
      “hi \r\n how r u?”

  • سید مرتضی گفته
    12 جولای 17

    سلام دوبار

    چن قسمت هستش ینی قسمت بعدی قسمت آخره یا نه قسمت پنجمسمت آخره یا اصلا هنوز ادامه داره؟؟؟

    • علیرضا صبوئی گفته
      12 جولای 17

      دوست خوبم قسمت بعدی قسمت آخر خواهد بود. مگر اینکه توی کامنت ها درخواست آموزش قسمت دیگه ای رو داشته باشیم. به امید خدا بعد از ربات ها به سراغ entity framework میریم

  • سید مرتضی گفته
    12 جولای 17

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

  • پونه گفته
    12 جولای 17

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

  • پونه گفته
    12 جولای 17

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

    • علیرضا صبوئی گفته
      12 جولای 17

      سلام. عذرخواهی من رو بابت تاخیر در جواب دادن بپذیرید. همانطور که توضیح دادم اینترنت منطقه ما ۵ روزه که قطعه!
      خدمت شما عرض شود که متاسفانه تلگرام، هنوز امکانی برای سایز دادن به دکمه ها اضافه نکرده. در نتیجه دکمه ها خودشونو فیت میکنن

  • پونه گفته
    12 جولای 17

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

    • علیرضا صبوئی گفته
      12 جولای 17

      با سلام خدمت شما. در مستندات SQLServer Compact که توسط مایکروسافت ارائه شده، این نکته قید شده که ورژن Compact میتونه تا ۲۵۶ connection را به طور همزمان هندل کنه و محدودیت حجمی دیتابیس هم ۴ گیگابایت هستش. خیلی بعید میدونم که رباتی که فرمودید تا مدت ها به این عددها برسه. نکته مهم دوم اینکه هر زمان که مایل بودید، میشه دیتابیس compact رو به SQL Server تبدیل کرد.
      در مورد تبدیل اطلاعات بانک اطلاعاتی به گزارشات پی دی اف هم باید بگم که بله به سادگی امکان پذیره. میتونید از سیستم های گزارش سازی مثل Stimulsoft استفاده کنید.

  • محمد گفته
    12 جولای 17

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

    • علیرضا صبوئی گفته
      12 جولای 17

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

      • محمد گفته
        12 جولای 17

        داداش من یه هاست گرفتم. یه دامین هم دارم که به ssl هاست وصله. نمیدونم برنامه رو چکار کنم.

        • علیرضا صبوئی گفته
          12 جولای 17

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

  • محمد گفته
    12 جولای 17

    سلام
    فدات داداش، رفتم سایت داش مولر رو هم دیدم، چیزی از MVP و ASP سر در نیاوردم. من نفهمیدم چکار کرده. اگر یه ویدیو بذاری که مثلا کد echo مولر رو توضیح بده، راحت میتونی تو اینترنت بفروشیش. جایی ندیدم که باشه

    • علیرضا صبوئی گفته
      12 جولای 17

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

      • محمد گفته
        12 جولای 17

        با مرامی

  • طاها اکابری گفته
    12 جولای 17

    سلام ممنون از این اموزش گیراتون.
    میخواستم بپرسم چطور میشه با زدن دکمه ربات درخواست لوکیشن کنه!؟
    داخل داکیومنتری تلگرام دیدم که میشه هم شماره تلفن فرد رو با این دکمه ها درخواست کرد و هم لوکیشن رو( به صورت طول و عرض جغرافیایی).

    • علیرضا صبوئی گفته
      12 جولای 17

      دوست خوبم این قابلیت فقط برای دکمه های inline وجود داره. وقتی دکمه رو میسازید ۲ تا پراپرتی داره:
      ۱٫request location
      ۲٫request contact
      کافیه مقدار هرکدومشونو که میخواین، کنیدtrue

  • طاها گفته
    12 جولای 17

    ممکنه یه مثالشو بگید؟
    من با
    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup
    امتحان کردم همچین پراپرتی نداشت.

    • علیرضا صبوئی گفته
      12 جولای 17

      طاهای عزیز. عذر خواهی میکنم. یک اشتباه لحظه ای پیش آمد و من به جای button نوشتم inlineButton
      در api تلگرام ربات دکمه های عادی قادر به گرفتن لوکیشن و مخاطب هستند.
      مثل نمونه کد زیر:
      Telegram.Bot.Types.KeyboardButton myButton=new KeyboardButton(“”);
      myButton.RequestLocation = true;

  • امیر گفته
    12 جولای 17

    سلام ببخشید من آموزش بخش سوم تونو انجام دادم ولی توی کد نویسی کلمه ی makup رو خطا گرفت من ویژوال استدیو ۲۰۱۷ نصب کردم و این کلمه رو خطا میگیره لطفا راهنمایی کنید با تشکر.

    • علیرضا صبوئی گفته
      12 جولای 17

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

  • مجید گفته
    12 جولای 17

    سلام خسته نباشید
    اقا یه سوال راهی هست که محتوای پیامی که دکمه میفرسته با متن روی دکمه فرق کنه؟

    • علیرضا صبوئی گفته
      12 جولای 17

      دوست عزیز سلام. بله منتها باید از دکمه های inline استفاده کنید. این موضوع در درسهای آموزش رباتی که در سایت، در حال پیگیری آنها هستید، ذکر خواهد شد.

  • علی هور گفته
    12 جولای 17

    سلام
    ممنون برای تمامی زحمت های شما،
    آیا میشه زمان ارسال پیام به کاربر کیبورد قبلی رو مجدد نمایش بدیم ؟ یا هر دفعه باید یک Replykeyboard جدید بسازیم ؟

    • علیرضا صبوئی گفته
      12 جولای 17

      آقای هور دو تا کار میتونید بکنید. اول اینکه کیبوردتونو استاتیک تعریف کنید که پیشنهاد نمیکنم.
      دوم اینکه متدی بسازید که یک کیبورد خاصو برگردونه.
      ولی نظر شخصی من اینه که ساخت مجددش مشکلی نداره. اگر مشکلتون با وصل شدن به دیتابیس هستش، دیتاهایی رو که تغییر نمیکنن، به صورت سرور ساید کش کنید.
      ضمن اینکه connection pool موجود در دات نت، هزینه زمانی اتصال به دیتابیسو شدیدا کاهش میده. بنابراین برای وصل شدن مجدد به دیتابیس زیاد نگران نباشید.

      • علی هور گفته
        12 جولای 17

        ممنون. من مجدد کیبورد رو ساختم و برای یوزر ارسال کردم.

  • محسن گفته
    12 جولای 17

    با سلام
    کد زیر قسمتی از ربات بندست اما نمی دونم اشکالش کجاست که به جای اینکه یک جواب بفرسته هی دو تا یا سه تا مسیج سند میکنه
    ابته بگم این یدونه از if ها هست
    فکر کنم هرچی هست زیر سر offset
    لطفا راهنمایی نمایید.
    }
    while (true)
    {
    var update = Task.Run(() => bot.GetUpdatesAsync(offset)).Result;

    foreach (var upDate in update)
    {
    try
    {

    var text = upDate.Message.Text;
    offset = upDate.Id + 1;
    if (text == “/start”)
    {
    string welcome = “خوش آمدید”;
    await bot.SendTextMessageAsync(upDate.Message.Chat.Id, welcome, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, Menue.mainMenue);

    continue;
    }
    در کل اگه کسی اطلاعاتی در زمینه getupdate داره بده ممنون میشم

    • علیرضا صبوئی گفته
      12 جولای 17

      این روش رو کلا کنار بگذارید دوست عزیز. به جای اینکه به صورت دستی getUpdate کنید و offset رو تغییر بدید، از event مربوط به OnMessage استفاده کنید

  • محمد گفته
    12 جولای 17

    ممنون از آموزش مفیدتان.
    آیا راهی هست که بتوان کیبورد های تو در تو نوشت؟

    • علیرضا صبوئی گفته
      12 جولای 17

      محمد عزیز در درس آخر مربوط به ربات ها، از یک design pattern استفاده میشود که در این مورد هم میتواند کارآمد باشد. اگر ربات استخدام البرز کد را بررسی کرده باشید، از همین تکنیک استفاده کرده است

      • رضا امینی گفته
        12 جولای 17

        با سلام خدمت شما استاد گرامی.
        این بخشی که فرمودید به صورت دیزاین پترن باید طراحی بشه ( منظورم دکمه های شیشه ای تو در تو هست ) میشه یه اشاره ای توی همین پست بکنید (مثلا بخشی از کد هاش رو بذارید یا یه پروژه نمونه رو به صورت زیپ شده ارسال کنید) تا دوستانی که مثل من احتیاج دارند بتونند از دانش شما استفاده کنند.
        ممنونم بابت آموزشاتون

        • علیرضا صبوئی گفته
          12 جولای 17

          رضای عزیز سلام. در درس های بعدی، این روش آموزش داده شده.

  • مهرزاد گفته
    12 جولای 17

    با سلام و خسته نباشید خدمت دوستان و استاد صبويی، من همین کد رو توی برنامم مینویسم ولی دکمه ای نمیاد نمیدونم چرا. بعد خواستم سورس رو دانلود کنم دیدم که لینک مشکل داره ممنون میشم یه لینک دیگه قرار بدین بازم تشکر ۳>

    • علیرضا صبوئی گفته
      12 جولای 17

      مهرزاد عزیز معمولا وقتی کیبورد نمیاد که یکی از دکمه ها به هر دلیلی null باشن. سورس ها رو هم به زودی اصلاح میکنیم. در حال انتقال سایت به یک سرور قوی تر هستیم. به این خاطر لینک ها رو بعد از انتقال، بررسی مجدد میکنیم.

  • منصوره اصغری گفته
    12 جولای 17

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

    • علیرضا صبوئی گفته
      12 جولای 17

      خانم اصغری لطفا قسمتی از کد رو که اینطور میشه کپی کنید تا ببینمش

  • peyvand گفته
    12 جولای 17

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

  • علی عابدی گفته
    12 جولای 17

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

    • علیرضا صبوئی گفته
      12 جولای 17

      دوست عزیز از طریق e.message.location میتوانید به مختصات این لوکیشن دسترسی داشته باشید

      • علی عابدی گفته
        12 جولای 17

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

        var keyboardloc = new ReplyKeyboardMarkup(new[] { new KeyboardButton(“ارسال آدرس”) { RequestLocation = true } });
        var keyboardcontact = new ReplyKeyboardMarkup(new[] { new KeyboardButton(“ارسال شماره تماس”) { RequestContact = true } });

        while (e.Message.Contact == null)
        {

        await bot.SendTextMessageAsync(userid, “به ربات من خوش آمدبد.” + Environment.NewLine + “لطفا برای ادامه روی دکمه ارسال شماره تماس کلیک نمایید”, ParseMode.Default, false, false, 0, keyboardcontact, default(System.Threading.CancellationToken));

        break;

        }

        while (e.Message.Contact != null)
        {

        if (e.Message.Location == null)
        {
        await bot.SendTextMessageAsync(userid, “حالا موقعیت مکانی خود را مشخص کنید”, ParseMode.Default, false, false, 0, keyboardloc, default(System.Threading.CancellationToken));

        break;
        }

        else
        }

        Consoule.writeln(“*********************”);
        }}

        • علیرضا صبوئی گفته
          12 جولای 17

          دوست عزیز فرمت ذهنیتون درباره ساز و کار ربات ها غلطه. آموزشها رو مجددا ببینید

  • محسن گفته
    12 جولای 17

    سلام
    خسته نباشید
    ببشید توی کد نویسی کلمه ی makup رو خطا گرفت من ویژوال استدیو ۲۰۱۷ نصب کردم و این کلمه رو خطا میگیره و اینو مینویسه
    Severity Code Description Project File Line Suppression State
    Error CS1503 Argument 6: cannot convert from ‘Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup’ to ‘int’ ConsoleApp3 C:\Users\Mohsen\Documents\Visual Studio 2017\1\Program.cs ۳۳ Active

    ممنون می شم راهنمائیم کنید.

    • علیرضا صبوئی گفته
      12 جولای 17

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

  • mehrdad گفته
    12 جولای 17

    با عرض سلام و خسته نباشید خدمت استاد عزیز
    من یه مشکلی داشتم و این بود که نمیتونم با استفاده از ربات شماره تلفن کاربر رو بگیرم و نمایش بدم ممنون میشم کمک کنید
    تا اینجا پیش رفنم ولی…
    Telegram.Bot.Types.KeyboardButton con = new Telegram.Bot.Types.KeyboardButton(“number”);
    con.RequestContact = true;
    Console.WriteLine(con);

    • علیرضا صبوئی گفته
      12 جولای 17

      کدتون ظاهرا درسته. چه خطایی دارید؟

  • پوریا گفته
    12 جولای 17

    با عرض سلام و خسته نباشید اموزش ها واقعا فوق العاده بود.
    من با یک ارور در ویژوال استادیو ۲۰۱۵ موجه شدم به این صورت که ازکیبورد ریپلای مارک اپ ایراد میگیره کسی میتونه کمکم کنه؟؟؟؟

    • علیرضا صبوئی گفته
      12 جولای 17

      بستگی به کدتون داره. یک جایی رو اشتباه نوشتید ۱۰۰%

  • مهدی یار گفته
    12 جولای 17

    سلام. فکر کنم این ورژن از کتابخانه من SendTextMessageرو نداره در عوض SendTextMessageAsyncرو داره. به نظرتون چیکار کنم؟

    • مهدی یار گفته
      12 جولای 17

      ببخشید این مشکل حل شد

    • علیرضا صبوئی گفته
      12 جولای 17

      از همون استفاده کنیدSendTextMessageAsync

  • مهدی یار گفته
    12 جولای 17

    سلام اقای مهندس صبوئی عزیز.
    مطمئنید که نمیشود سایز دکمه ها را تعیین کرد؟
    من چند ربات دیدم که سایز هاشان متناسب بود.

  • امیررضا گفته
    12 جولای 17

    یه سوال داشتم
    من ویژال ام ۲۰۱۷ هستش
    بعد توی اون قسمت bot.SendTextMessageAsync یه مشکلی هست برام…
    بعد از پارامتر دومش که تکست هستش، یه پارامتر جدید میگیره به نام parseMode…
    بعد نمیدونم من اینو چیکارش کنم…
    ممنون میشم توضیح بدید 🙂

    • علیرضا صبوئی گفته
      12 جولای 17

      parsmode.default

  • حسین گفته
    12 جولای 17

    سلام
    وقت به خیر
    من آموزش های شما رو دانلود کردم
    بسیار عالی بودن
    یک سوالی داشتم در مورد ساخت کیبورد
    چطور میشه به جای استفاده از دکمه های معمولی از دکمه های شیشه ایی استفاده کرد
    یعنی وقتی روی اون آیکن کلیک کنیم دکمه های شیشه ایی نمایش داده بشن
    با تشکر از شما

    • علیرضا صبوئی گفته
      12 جولای 17

      سلام دوست عزیز. در ادامه ویدیوهای این سری، مورد مورد نظر شما، آموزش داده شده.

  • علی گفته
    12 جولای 17

    سلام من میخواستم یه ربات مثل این ربات بسازم باید کدوم آمزش رو استفاده کنم
    @EsfDivarBot

    • علیرضا صبوئی گفته
      12 جولای 17

      سلام دوست عزیز. آموزش های ربات به صورت سری هستند

  • amirsalar گفته
    12 جولای 17

    با سلام من هم این مشکلی که دوست دیگمون داشتند دارم در قسمتی که مارک آپ میخواهیم بوسیله سند مسیج ارسال بشه خطای زیر میاد با توجه به توضیحات برنامه بعد از مارکاپ هم ویرگول بگذاریم یک پارامتر دیگه هم باید مشخص بشه به اسم توکن و بعد پرانتز بسته شود نمیدونم ددرست میگم یا خیر ارور در قسمت سند مسیج بات ۳ خطا هست به صورت زیر:
    Severity Code Description Project File Line Suppression State
    Error CS1503 Argument 6: cannot convert from ‘Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup’ to ‘int’ Salarbot I:\telegramBOT\SalarbotJadid\Salarbot\Salarbot\Pr
    ogram.cs ۳۵ Active

    Error CS1503 Argument 5: cannot convert from ‘int’ to ‘bool’ Salarbot I:\telegramBOT\SalarbotJadid\Salarbot\Salarbot\Program.cs ۳۵ Active

    Error CS1503 Argument 3: cannot convert from ‘bool’ to ‘Telegram.Bot.Types.Enums.ParseMode’ Salarbot I:\telegramBOT\SalarbotJadid\Salarbot\Salarbot\Program.cs ۳۵ Active

    • علیرضا صبوئی گفته
      12 جولای 17

      نسخه ربات رو غلط نصب کردید

  • مهدی س گفته
    12 جولای 17

    برای ساخت ردیف دکمه وبقیه کدش میشه از لیست استفاده کرد ودر متد به to Arrye

  • مهدی س گفته
    12 جولای 17

    برای ساخت ردیف دکمه و جدول دکمه ها میشه از لیست استفاده کرد تا ارایه بهتر وراحتره و جدید تره با تشکر از اموزش خوبتون خیلی عالی بود

  • Mhdiknd گفته
    12 جولای 17

    اقای صبوئی برای من زیر false و ۰ و markup قرمز میشه عکسشم توی تلگرام براتون فرستادم ممنون میشم چک کنید

    • علیرضا صبوئی گفته
      12 جولای 17

      ورژن غلطی از رباتو نصب کردید

  • هادی رجاپور گفته
    12 جولای 17

    سلام ، خسته نباشید ، واقعا کارت عالیه

  • ali گفته
    12 جولای 17

    لینک خرابه

    • علیرضا صبوئی گفته
      12 جولای 17

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

  • آرین گفته
    12 جولای 17

    سلام ، لینک سورس کدتون مشکل داره نات فاند میده 🙁
    آقای رابین مولر از زمان این آموزش تا الان چند تا آپدیت جدید دادن که یه سری چیزا کلا تغییر کرده ورژن رو مطابق آموزش کردم ولی هنوز مشکل داره ، برای همین سورس کد رو میخوام 🙂

  • مائده گفته
    12 جولای 17

    سلام ممنون برای آموزش خوبتون،من یک ارور در قسمت bot.SendTextMessageAsync(e.Message.Chat.Id, “لطفا از کلید های زیر استفاده کنید”, false, false, 0,markup); دارم.اگ ممکن هست راهنمایی کنید.

    • علیرضا صبوئی گفته
      12 جولای 17

      مائده عزیز متن ارور چیه

  • حامد گفته
    12 جولای 17

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

    bot.SendTextMessageAsync(e.Message.Chat.Id, “entekhab konid”,false,false,0,markup);

    قبل false یه چیزه دیگه ازم میخواد که رو هر نوعی تغیرش میدم چه دیفالت و یا چیزاییه دیگه باز میگه ی آرایه کمه

    این عکس رو آپلود کردم ببیند ک بفهمید منظورمو

    http://uupload.ir/files/rd7y_capture.png

    • علیرضا صبوئی گفته
      12 جولای 17

      در جدید ترین ورژن، آرگومان ها تفاوت کردن. به سراغ ویدیوهای بعدی برید

  • محمد گفته
    12 جولای 17

    روی لینک دانلود سورس پروژه که کلیک میکنیم ارور ۴۰۴ میاد

  • مبین گفته
    12 جولای 17

    ممنون از اموزش خوبتون.من رباتی با این کدهای شما نوشتم.امروز کتابخونه ی ربات رو اپدید کردم.این کد های شما روی ورژن ۱۴٫۶٫۰ از کتابخونه جواب نمیده.اگر امکان داره در مورد اضافه کردن کیبورد در این ورژن نیز توضیح بدید.

    • علیرضا صبوئی گفته
      12 جولای 17

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

  • zahrash گفته
    12 جولای 17

    سلام خسته نباشید
    برنامه من این قسمت از کد رو error میگیره
    میشه راهنمایی کنید
    من هر کاری انجام دادم درست نشد

    Telegram.Bot.Types.KeyboardButton myButton = new KeyboardButton(“”);

    KeyboardButton رو ارور میگیره

    • علیرضا صبوئی گفته
      12 جولای 17

      زهرای عزیز فکر کنم ورژن را درست نصب نکردید.

  • علی گفته
    12 جولای 17

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

  • حسین گفته
    12 جولای 17

    سلام. چرا کد ها برای من عمل نمی کنن؟؟؟

  • reymah گفته
    12 جولای 17

    استاد من کتابخونه آقای مولر رو یکبار حذف کردم و دوباره نصب کردم ولی keyboardbutton داخل types نیست!

    • علیرضا صبوئی گفته
      12 جولای 17

      جاش عوض شده دوست عزیز. ۲ راه دارید:
      ۱٫ ورژن های قدیمیو نصب کنید.
      ۲٫ من خاطرم نیست جاشو اما توی یکی از فولدرها گذاشتتش

      • محمد گفته
        12 جولای 17

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

      • Moein گفته
        12 جولای 17

        میشه بیشتر توضیح بدین

      • ahmad گفته
        12 جولای 17

        سلام
        با نوشتن این کد Telegram.bot.typsو ادامه کد طبق آموزشتون این ارور رو میده
        ‘Telegram’ is a namespace but is used like a variable

  • محسن گفته
    12 جولای 17

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

    • علیرضا صبوئی گفته
      12 جولای 17

      تا انتهای درسها پیش برید محسن جان. احتمالا یادش میگیرید.

  • آریا گفته
    12 جولای 17

    سورس پروژه این قسمت خرابه

  • shayan گفته
    12 جولای 17

    سلام ویژوال من namespace < telegram.bot.types.keyboardButton قسمت کیبورد باتن رو نمیاره !چرا ؟ممنون

    • amirsalar گفته
      12 جولای 17

      سلام منم همین مشکل رو دارم…

    • Moein گفته
      12 جولای 17

      دقیقا من هم همینطور

  • yousef گفته
    12 جولای 17

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

  • محمد گفته
    12 جولای 17

    سلام و عرض ادب
    ببخشید برای من کیبورد باتن رو بعد تایپز نمیاره مشکل از کجاس؟

  • محمد گفته
    12 جولای 17

    سلام استاد ببخشید Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup markup = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(keyboard); کیبورد وقتی اور لود میکنم ارور میده میشه یه راهنمایی بفرمایید

  • مهراد گفته
    12 جولای 17

    لطفا درمورد یه سری چیز ها بیشتر توضیح دهید

$(document).ready(function(){ $('#owl_carousel_1').owlCarousel({ rtl:true, loop:true, margin:30, autoplay:true, autoplayTimeout:4000, autoplayHoverPause:true, navText: ['',''], nav:true, responsive:{ 0:{ items:1 }, 600:{ items:3 }, 1000:{ items:1 } } }) $('#owl_carousel_2').owlCarousel({ rtl:true, loop:true, margin:30, autoplay:true, autoplayTimeout:2000, autoplayHoverPause:true, responsive:{ 0:{ items:1 }, 600:{ items:3 }, 1000:{ items:4 } } }) hljs.initHighlightingOnLoad(); e.preventDefault(); $('html,body').animate({ scrollTop:$('.post_comments').offset().top}, 'slow'); });