آرشیو: آرشیو مهراد روستا

مرا تا عشق تعلیم سخن کرد

آرشیو مهراد روستا

مرا تا عشق تعلیم سخن کرد

آرشیو: ساخت ربات تلگرام با زبان C#

سه شنبه, ۳۰ تیر ۱۳۹۴، ۰۳:۵۴ ب.ظ

شاید شما هم دلتون خواسته که یک ربات تلگرام داشته باشید اما به دلیل پیچیده بودن مستندات تلگرام از این کار منصرف شده باشید. من حالا میخواهم بهتون روش ساخت ربات تلگرام رو در VisualStudio و با کمک زبان C# یاد بدم :) پس با من همراه باشید. . .

برای  این کار ما از یه کتابخونه به اسم Telegram Bot Api Library استفاده میکنیم. این کتابخانه که به صورت اوپن سورس منتشر شده خیلی ابزار خوبی برای افردای هستش که میخواهند با ابزار های مایکروسافت و زبان سی شارپ برای Telegram یک Bot بنویسند.

برای نصب آن ابتدا ابزار های آن رادریافت کنید : دانلود

پس از خارج کردن آن از حالت فشرده شده، Telegram.Bot.sln را با VS باز کنید. وقتی ویژال استودیو باز شد به دایرکتوری Telegram.Bot.Echo رفته و Program.cs را باز کنید. 

پروژه را اجرا کنید. احتمالا با خطای : A project with an Output type of Class Library cannot be started directly. رو به رو میشوید.

برای رفع آن دستور العمل های زیر را انجام دهید : 

  1. Right click on project in Solution Explorer -> Properties.

  2. In opened tab with properties select Application and there will be ComboBox marked with Output Type label.

حالا باید با استفاده از @BotFather رو بات خود را بسازید. قسمت زیر توسط امیر حبیب زاده تهیه شده:

مرحله یک : ساخت بات و دریافت توکن اجازه دسترسی (authorization token)

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

یک : توی سایت در این لینک ثبت نام کنید و توکن دریافت کنید .

دو : با استفاده از یکی از ربات های خود تلگرام به اسم (botFather) توکن دریافت کنید .

که من خودم مرحله دو رو بیشتر پسندیدم و حس کردم راحت تر هست . براتون توضیح میدم .

۱-روی این لینک کلیک کنید :

https://telegram.me/botfather

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

لیست کامندها و توضیحات خیلی شفاف هستش

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

بعد دریافت توکن میتونید از همه متدهای ای پی آی تلگرام استفاده کنید .

- See more at: http://amirh.ir/how-to-build-telegram-bot/#sthash.nJ0tTs48.dpuf

حالا که توکن رو دریافت کردید آن در این قسمت کد بگزارید:

static async Task Run()
{
  string chats = " ";


  var Bot = new Api("123456134:AAFh9QF1jo-AaAaAEAaaa4GVL8_rr_AaAaA");

  var me = await Bot.GetMe();

  Console.WriteLine("Hello my name is {0}", me.Username);

تبریک! شما اکنون ربات خود را نوشتید! 

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

نمونه کد من

.هر چند ربات کاربردی نیست اما برای شروع خوبه :)) . امیدوارم شما هم بتوانید ربات دلخواه خود را بنویسید.

 هر سوالی داشتید نترسید و بپرسید که تا جایی که میدونم جوابم بدم :)

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

آرشیو نظرات  (۱۸)

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

مرسی
You really found a way to make this whole presocs easier.
پاسخ:
:|
حدود یک ساعت با این Telegram Bot Api Library کار کردم ولی با VS2012  اجرا نشد که نشد و خطا داد تو رو جدت حداقل یه با خودت چک کردی
پاسخ:
باید 2015 باشه تا nuget package manager کار کنه   
سلام
بجز vps
و
لوکال
راه دیگری هم هست برای راه اندازی  بوت

پاسخ:
سلام
خب اگه وی پی اس و لوکال نباشه میخاید کجا اجراش کنید!!؟؟؟!؟!

سلام ضمن تشکر  از زحمات و راهنماییهای خیرخواهانه شما و با عذر خواهی بابت اطاله سوال عرض میکنم که میخوام بتونم بدون استفاده از برنامه های آماده و سرورهای سایرین رباتم رو طراحی کنم لذا چند سوال برای طراحی ظاهر و کنترلهای اون برام پیش اومده و نمیدونم که آیا این کار منحصرا با botfather هست یا با ربات دیگه ای از شرکت تلگرام انجام میشه و اینکه آیا با کد نویسی c# هم میشه دکمه تعریف کرد یا نه حالا چند سوال دارم:
1-چگونه با برنامه نویسی برای یک ربات دکمه تعریف کنیم؟
2-چگونه با botfatherبرای ربات دکمه تعریف کنیم؟واگه با ربات دیگه ای از شرکت تلگرام  این کار انجام میشه با کدوم ربات وچگونه؟
3-چگونه و با چه متدی برای دکمه های ربات با کد نویسی فعالیت تعریف کنیم؟
4-درتعریف فعالیت دکمه ها قطعا میتوان سرور وبانکی داشته باشیم تا بر اون اساس وبا مراجعه به اون ربات پاسخ بده اما سوال من  در این بند اینه که آیا میتوان بدون مراجعه به سرور خودمون عملیاتی محاسباتی تعریف کنیم  مثلا میتوان یک ماشین حساب درست کرد؟چون محاسبات ماشین حساب و تعریف متغیرهای اون دیگه نیاز به مراجعه به سرورخودمون و بانک اطلاعاتیمون نداره.(منظورم حالتی شبیه javascript هست که نیاز به رفتن به سرور نداره)
5-آیا کنترلهای  رباتها فقط به صورت دکمه های از نوع bottonاست یا انواع دیگری مانند combobox یاspinnerهم دارند؟
6-آیا وقتی با رباتهای وطنی رایگان (ساخت ربات بدون برنامه نویسی)رو انجام میدیم و دکمه میگذاریم و.....بازهم میتونیم از طریق c# برای اون  و دکمه های اون برنامه نویسی کنیم 

نیاز به VS 2015 داره
سلام
من مشکلی ندارم اما اینجا که میخوام پیام بزنم میگه برای اینکه به یه چت پیام بزنم باید چت آیدی اون رو داشته باشم  . اینرو چجوری بدست بیارم . ممنون
پاسخ:
سلام 
برای به دست آوردن چت آی دی باید اون کاربر با شما یک بار ارتباط برقرار کنه!
پس همینجوری نمیشه چت آی دیشو به دست آورد
salam
man hamin code shomaro eynan neveshtam vali inja
var me = await Bot.GetMe();
ke mirese reeor mide :(

komak konid

پاسخ:
:( ببخشید 6 ماه دیر دیدم کامنتتونو

با سلام من سورس رودانلود کردم و بعد از اجرا اون در ویژوال 85 تا خطا رو دریافت کردم :/
نسخه ویژوال من 2012 هستش
اکثر خطا ها هم سینتکسی هستند مثلا در کلاس ChatAction.cs این خط رو خطا میگیره و میگه ; نداره
 public static ChatAction Typing => new ChatAction("typing");
بخش‌هایی از این نظر که با * مشخص شده، توسط مدیر سایت حذف شده است
سلام من این سورس  رو دانلود کردم و api خودمرو روش ست کردم ولی وقتی کامپایل رو میزنم ** تا خطا اونم اکثرا خطای سینتکسی هست رو میده
نسخه ویژوال من 2012 هستش
مثلا در فایل ChatActions.cs این عبارت رو خطا میگیره و میگه ; نذاشتی
 public static ChatAction Typing => new ChatAction("typing");

این سورس دو تا خطا میده :

1 - Error 22 Metadata file 'C:\Users\user\Downloads\Compressed\telegram.bot-master_2\telegram.bot-master\Telegram.Bot\bin\Release\Telegram.Bot.dll' could not be found C:\Users\user\Downloads\Compressed\telegram.bot-master_2\telegram.bot-master\Telegram.Bot.Echo\CSC Telegram.Bot.Echo

2 - Error 21 The command ""C:\Users\user\Downloads\Compressed\telegram.bot-master_2\telegram.bot-master\.nuget\NuGet.exe" install "C:\Users\user\Downloads\Compressed\telegram.bot-master_2\telegram.bot-master\Telegram.Bot\packages.config" -source ""  -NonInteractive -RequireConsent -solutionDir "C:\Users\user\Downloads\Compressed\telegram.bot-master_2\telegram.bot-master\ "" exited with code 1. C:\Users\user\Downloads\Compressed\telegram.bot-master_2\telegram.bot-master\.nuget\NuGet.targets 100 9 Telegram.Bot

لطف کن dll لازم رو جداگانه آپلود کن
پاسخ:
برای استفاده از این سورس ها نیاز به NuGet دارید. شما از چه نسخه ای از ویژوال استودیو استفاده میکنید؟
سلام
وقتی برنامه رو کامپایل کردیم، بعدش باید جایی برنامه رو اپلود کنیم؟؟
منظورم اینه که چطوری ربات با برنامه ای که توی کامپیوتر خودمون هست ارتباط برقرار میکنه؟
پاسخ:
خوب شما میتونید توی کامپیوتر خودتون بزارید باشه اما راه اصلیش اینه که یک VPS میخرید و برنامه رو روی آن اجرا میکنید. البته این ساده ترین حالت هستش :)
--
اگر استفاده ی ساده دارید میتونید روی کامپیوتر خودتون اجرا کنید پروژه رو
۲۶ مرداد ۹۴ ، ۲۱:۴۰ آی کنکوری دات آی آر
آقا من الان مشکلم همون sslهستش
هر کاریم میکنم نمیشه
رفتم این سایت
https://www.cloudflare.com
و بعد ثبت نام اینو داد
Status: Pending

Please ensure your website is using the nameservers provided:

  • jobs.ns.cloudflare.com
  • wally.ns.cloudflare.com

Allow up to 24 hours for this change to be processed. There will be no downtime when you switch your name servers. Traffic will gracefully roll from your old name servers to the new name servers without interruption. Your site will remain available throughout the switch

من الان چیکار کنم ؟

هاست اینام دارم ولی مشکلم فعلا slsهستش

پاسخ:
خوب ساخت ربات با این روش ssl میخواد، حداقل وقتی که بخواد رو کامپیوتر خودتون اجرا شه
برای VPS هم تست نکردم هنوز ولی فکر نکنمگواهینامه SSL نیاز باشه در این روش
درهر صورت من در زمینه دریافت گواهی SSL بلد نیستم زیاد :)
۲۴ مرداد ۹۴ ، ۰۹:۳۲ هانی گمینی
سلام
برنامه را که دانلود کردم با مشکل مواجه بود و build نمی شد.

سلام
لینکی که دادید پروژه با خطا روبرو میشه و Dll ها را نداره
Severity Code Description Project File Line
Error Metadata file 'C:\Users\HaniGamini\Desktop\telegram.bot-master\Telegram.Bot\bin\Debug\Telegram.Bot.dll' could not be found Telegram.Bot.Echo C:\Users\HaniGamini\Desktop\telegram.bot-master\Telegram.Bot.Echo\CSC

پاسخ:
لینک که درست است اما شما باید این کتاب خانه را وارد پروژه کنید
آموزش تصویری ساخت ربات تلگرام

http://shop.idreams.ir/index.php?route=product/product&product_id=68
۳۱ تیر ۹۴ ، ۱۷:۱۹ علی پیروزوند
وب هوک چطوریه؟
من اون قسمتش رو نفهمیدم

پاسخ:
وب هوک؟ کجا گفتم وب هوک؟ وب هوک برای سیستم دریافت پیام هاست که توی این کتابخونه پیاده سازی شده :)

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">