با رشد دنیای تکنولوژی، وسائل هوشمند همراه نیز به سرعت پیشرفتهتر شدند. در این میان با گسترش زیرساخت اینترنت، رشد شبکههای اجتماعی نیز چشمگیر بوده است. یکی از بهترین اینها، شبکههای تلگرام میباشد که با بهره گیری از سرورهای ابری، امنیت و سرعت را برای کاربران به ارمغان آورده است.
چندی پیش موسسان تلگرام با معرفی APIهای کاربردی، به توسعه کنندگان اجازه دادند که با بهره گیری از بستر این شبکه، اقدام به تولید اینترفیسی به اسم بات کنند که با دریافت دستورات سفارشی، عملیات خاصی را انجام دهد.
در واقع تلگرام و متدهای ارائه شده، یک راه ارتباطی بین کاربران و برنامههای تولید شده را ایجاد کردند که با قدری ذوق و سلیقه، شاهد باتهای جالب و کاربردی هستیم.
در این مقاله سعی شده طرز تهیه یک بات با زبان #C توضیح داده شود.
در ابتدا شما باید توسط یکی از باتهای اصلی تلگرام اقدام به ثبت نام کاربری و تنظیمات بات مورد نظر خودتان نمایید. بات مورد نظر @BotFather میباشد که با شروع مکالمه میتوان با فرستادن دستورات مختلف تنظیمات مختلفی را انجام داد. با شروع مکالمه با بات مورد نظر با دستور /start دستورات زیر قابل انجام میباشد:
با انجام دستور /newbot در ابتدا نام بات و یوزنیم (دقت کنید یوزرنیم میبایست حتما به کلمهی bot ختم شود) را تنظیم کنید.
بعد از تایید نام و یوزر نیم، به شما یک توکن اختصاص داده میشود که توسط آن شما شناسایی میشوید.
در اینجا شما میتوانید تنظیمات اضافهتری مانند عکس برای پروفایل و غیره را نیز تنظیم کنید.
در مرحلهی بعد میتوانید در همین قسمت دستورات مورد نظر را جهت بات خود تنظیم کنید. برای این کار باید دستور /setcommands را وارد کنید و دستور مورد نظر خود را به فرمت command1 – Description وارد کنید.
مرحلهی بعد، تنظیمات برنامهی شما جهت دریافت دستورات وارد شده و انجام عملیات مورد نظر و تولید و ارسال خروجی مورد نظر است.
دریافت دستورات به دو طریق انجام میشود:
1. توسط دستور getUpdates میتوان تمامی کامندهای دریافتی را از سرور تلگرام دریافت کرد و با انجام پروسسهای لازم، خروجی را به کاربر مورد نظر ارسال کرد.
2. توسط تابع webhook از تلگرام درخواست کرد در صورت دریافت دستور جدید به بات، این دستور را به یک آدرس خاص ارسال کرد.
قابل توجه است که میتوان فقط از یکی از دو روش فوق استفاده کرد. همچنین در روش دوم حتما سرور مورد نظر باید گواهی ssl تایید شده داشته باشد.
کد زیر دریافت کامندهای یک بات به روش اول میباشد :
و توسط تابع زیر میتوان به کاربری که به بات کامند ارسال کرد، پاسخ داد:
لازم به ذکر است خروجی توابع باتهای تلگرام با فرمت JSON میباشد که با نصب پکیج NewTonsoft میتوان آن را به لیست تبدیل کرد.
rs.message.chat.id، آی دی فردی است که به بات تلگرامی ما مسیج ارسال کرده است.
rs.message.chat.first_name نام فردی است که به بات تلگرام مسیج ارسال کرده است.
همچنین میتوان در جواب کامند بات، علاوه بر متن، صدا و تصویر را نیز ارسال نمود .
در این لینک و این لینک میتوان توضیحات بیشتری را در این زمینه مطالعه کرد.
در انتها خوشحال میشوم ذوقها و ایدههای شما را در ساخت باتها با آیدی @iekhtiari مشاهده کنم.
چندی پیش موسسان تلگرام با معرفی APIهای کاربردی، به توسعه کنندگان اجازه دادند که با بهره گیری از بستر این شبکه، اقدام به تولید اینترفیسی به اسم بات کنند که با دریافت دستورات سفارشی، عملیات خاصی را انجام دهد.
در واقع تلگرام و متدهای ارائه شده، یک راه ارتباطی بین کاربران و برنامههای تولید شده را ایجاد کردند که با قدری ذوق و سلیقه، شاهد باتهای جالب و کاربردی هستیم.
در این مقاله سعی شده طرز تهیه یک بات با زبان #C توضیح داده شود.
در ابتدا شما باید توسط یکی از باتهای اصلی تلگرام اقدام به ثبت نام کاربری و تنظیمات بات مورد نظر خودتان نمایید. بات مورد نظر @BotFather میباشد که با شروع مکالمه میتوان با فرستادن دستورات مختلف تنظیمات مختلفی را انجام داد. با شروع مکالمه با بات مورد نظر با دستور /start دستورات زیر قابل انجام میباشد:
You can control me by sending these commands : / newbot - create a new bot / token - generate authorization token / revoke - revoke bot access token / setname - change a bot's name / setdescription - change bot description / setabouttext - change bot about info / setuserpic - change bot profile photo / setcommands - change bot commands list / setjoingroups - can your bot be added to groups ? / setprivacy - what messages does your bot see in groups ? / deletebot - delete a bot / cancel - cancel the current operation
بعد از تایید نام و یوزر نیم، به شما یک توکن اختصاص داده میشود که توسط آن شما شناسایی میشوید.
در اینجا شما میتوانید تنظیمات اضافهتری مانند عکس برای پروفایل و غیره را نیز تنظیم کنید.
در مرحلهی بعد میتوانید در همین قسمت دستورات مورد نظر را جهت بات خود تنظیم کنید. برای این کار باید دستور /setcommands را وارد کنید و دستور مورد نظر خود را به فرمت command1 – Description وارد کنید.
مرحلهی بعد، تنظیمات برنامهی شما جهت دریافت دستورات وارد شده و انجام عملیات مورد نظر و تولید و ارسال خروجی مورد نظر است.
دریافت دستورات به دو طریق انجام میشود:
1. توسط دستور getUpdates میتوان تمامی کامندهای دریافتی را از سرور تلگرام دریافت کرد و با انجام پروسسهای لازم، خروجی را به کاربر مورد نظر ارسال کرد.
2. توسط تابع webhook از تلگرام درخواست کرد در صورت دریافت دستور جدید به بات، این دستور را به یک آدرس خاص ارسال کرد.
قابل توجه است که میتوان فقط از یکی از دو روش فوق استفاده کرد. همچنین در روش دوم حتما سرور مورد نظر باید گواهی ssl تایید شده داشته باشد.
کد زیر دریافت کامندهای یک بات به روش اول میباشد :
public class mydata { public result[] result; } public class result { public int update_id { get; set; } public message message { get; set; } } public class message { public int message_id { get; set; } public message_from from { get; set; } public message_chat chat { get; set; } public int date { get; set; } public string text { get; set; } } public class message_from { public int ind { get; set; } public string first_name { get; set; } public string username { get; set; } } public class message_chat { public int id { get; set; } public string first_name { get; set; } public string username { get; set; } } public Void GetUpdates() { WebRequest req = WebRequest.Create("https://api.telegram.org/bot" + yourToken + "/getUpdates"); req.UseDefaultCredentials = true; WebResponse resp = req.GetResponse(); Stream stream = resp.GetResponseStream(); StreamReader sr = new StreamReader(stream); string s = sr.ReadToEnd(); sr.Close(); var jobject = Newtonsoft.Json.Linq.JObject.Parse(s); mydata gg = JsonConvert.DeserializeObject<mydata>(jobject.ToString()); List<result> results = new List<result>(); foreach (result rs in gg.result) { results.Add(rs); SendMessage(rs.message.chat.id.ToString(), "hello"+" "+"Dear"+rs.message.chat.first_name); } }
public static void SendMessage(string chat_id, string message) { WebRequest req = WebRequest.Create("https://api.telegram.org/bot" + youToken + "/sendMessage?chat_id=" + chat_id + "&text=" + message); req.UseDefaultCredentials = true; var result = req.GetResponse(); req.Abort(); }
لازم به ذکر است خروجی توابع باتهای تلگرام با فرمت JSON میباشد که با نصب پکیج NewTonsoft میتوان آن را به لیست تبدیل کرد.
rs.message.chat.id، آی دی فردی است که به بات تلگرامی ما مسیج ارسال کرده است.
rs.message.chat.first_name نام فردی است که به بات تلگرام مسیج ارسال کرده است.
همچنین میتوان در جواب کامند بات، علاوه بر متن، صدا و تصویر را نیز ارسال نمود .
در این لینک و این لینک میتوان توضیحات بیشتری را در این زمینه مطالعه کرد.
در انتها خوشحال میشوم ذوقها و ایدههای شما را در ساخت باتها با آیدی @iekhtiari مشاهده کنم.