کتابخانه‌ی استاندارد · وب و سرویس‌ها

بات telegram/bot

ساختن بات با Bot API: پیام، دکمه، وب‌هوک و حلقه‌ی دریافت.

واردسازی تلگرام.بات

برای ساختن بات، از BotFather توکن بگیرید و بات جدید را با آن بسازید. بات دو راه برای گرفتن پیام‌ها دارد: حلقه دریافت که خودش از تلگرام می‌پرسد و برای آزمودن و سرورهای ساده بهتر است، یا وب‌هوک که تلگرام پیام‌ها را با POST به سرور شما می‌فرستد.

در وب‌هوک می‌توانید جواب را مستقیم در بدنه‌ی پاسخ HTTP بفرستید؛ تابع‌های پاسخ ... همان متن جیسون را می‌سازند. با تنظیم وب هوک با رمز رمزی بگذارید و در هر درخواست سرآیندش را بررسی کنید.

چند نکته که معمولاً غافلگیر می‌کند:

  • هر فراخوانی API یک درخواست HTTP از نوع GET است که پارامترهایش در نشانی می‌آیند. برای همین رسانه‌ها با file_id یا با نشانی عمومی‌ای که تلگرام خودش دانلود می‌کند فرستاده می‌شوند؛ پرونده‌ای را که روی دیسک شماست نمی‌شود با این بسته بارگذاری کرد. توکن هم در همین نشانی است؛ پس نشانی درخواست‌ها را در گزارش‌ها ننویسید.
  • حلقه دریافت هرگز برنمی‌گردد و تابع شما را هر بار برای یک بروزرسانی اجرا می‌کند. گرداننده‌ی کند همه‌ی گفتگوها را معطل می‌کند. اگر getUpdates شکست بخورد، دلیلش را در خروجی خطا می‌نویسد و یک ثانیه بعد دوباره امتحان می‌کند.
  • جوابی که در پاسخ وب‌هوک فرستاده می‌شود بی‌بازگشت است: نمی‌فهمید موفق بوده یا نه و شناسه‌ی پیام تازه را هم نمی‌گیرید. اگر یکی از این‌ها را لازم دارید، تابع «ارسال ...» متناظر را صدا بزنید.

پاسخ دادن به دستورها

منطق بات را در تابعی بگذارید که یک بروزرسانی می‌گیرد و پاسخ را برمی‌گرداند. آن وقت همان تابع هم به کار وب‌هوک می‌آید که پاسخ را در بدنه‌ی پاسخ HTTP پس می‌فرستد، هم به کار آزمونی مثل این که بروزرسانی‌های دست‌نوشته به آن می‌دهد و نه شبکه می‌خواهد نه توکن. دستور است و نام دستور و آرگومان های دستور متن /add 2 3 را به بخش‌هایش می‌شکنند، و نام دستور پسوند @my_bot را که تلگرام در گروه‌ها می‌افزاید کنار می‌گذارد.

telegram-bot-guide-router.salam
واردسازی تلگرام.بات
واردسازی رشته

تابع پاسخ(ب: بات.بروزرسانی): رشته:
    اگر وارونه ب.پیام دارد:
        برگشت ""
    پایان
    پ := ب.پیام
    اگر وارونه بات.دستور است(پ.متن):
        برگشت بات.پاسخ پیام(پ.گفتگو.شناسه، "گفتی: " + پ.متن)
    پایان
    ترابرد بات.نام دستور(پ.متن):
        "start":
            برگشت بات.پاسخ پیام(پ.گفتگو.شناسه، "سلام " + پ.فرستنده.نام + "! بنویس /add 2 3")
        پایان
        "add":
            تکه ها := رشته.تفکیک کردن(بات.آرگومان های دستور(پ.متن)، " ")
            اگر تکه ها.طول() != ۲:
                برگشت بات.پاسخ پیام(پ.گفتگو.شناسه، "شکل درست: /add A B")
            پایان
            جمع := رشته.تبدیل به عدد(تکه ها.بگیر(۰)) + رشته.تبدیل به عدد(تکه ها.بگیر(۱))
            برگشت بات.پاسخ پیام(پ.گفتگو.شناسه، رشته.از عدد(جمع))
        پایان
    پایان
    برگشت بات.پاسخ پیام(پ.گفتگو.شناسه، "این دستور را نمی‌شناسم")
پایان

تابع ریشه:
    صندوق := [`{"update_id":1,"message":{"message_id":1,"text":"/start","chat":{"id":42,"type":"private"},"from":{"id":42,"first_name":"سارا"}}}`،
        `{"update_id":2,"message":{"message_id":2,"text":"/add 2 3","chat":{"id":42,"type":"private"}}}`،
        `{"update_id":3,"message":{"message_id":3,"text":"/add 2","chat":{"id":42,"type":"private"}}}`،
        `{"update_id":4,"message":{"message_id":4,"text":"/weather@my_bot","chat":{"id":42,"type":"private"}}}`،
        `{"update_id":5,"message":{"message_id":5,"text":"صبح بخیر","chat":{"id":42,"type":"private"}}}`]
    هر خام در صندوق:
        سرچاپ پاسخ(بات.تجزیه بروزرسانی(خام))
    پایان
پایان
خروجی{"method": "sendMessage", "chat_id": 42, "text": "سلام سارا! بنویس /add 2 3"} {"method": "sendMessage", "chat_id": 42, "text": "5"} {"method": "sendMessage", "chat_id": 42, "text": "شکل درست: /add A B"} {"method": "sendMessage", "chat_id": 42, "text": "این دستور را نمی‌شناسم"} {"method": "sendMessage", "chat_id": 42, "text": "گفتی: صبح بخیر"}

ترابرد شاخه‌ی وگرنه ندارد، پس دستوری که در آن نیامده از آن بیرون می‌افتد و به خط بعد می‌رسد که می‌گوید دستور ناشناخته است. همیشه پاسخی بدهید: باتی که ساکت می‌ماند به چشم کاربر خراب است.

دکمه‌های درون خطی

صفحه کلید درون خطی فهرستی از ردیف‌هاست و هر ردیف فهرستی از دکمه‌ها. دکمه درون خطی رشته‌ی callback_data تا ۶۴ بایت را با خود دارد که وقتی کاربر دکمه را می‌زند برمی‌گردد؛ دکمه درون خطی با پیوند به جای آن پیوندی را باز می‌کند. هر زدن دکمه به شکل بروزرسانی‌ای می‌رسد که has_callback_query آن درست است. با پاسخ فوری پرسمان بازخوان جوابش را بدهید، وگرنه دکمه همچنان در حال چرخیدن می‌ماند، و معمولا پیام اصلی را هم ویرایش کنید تا گفتگو نشان دهد چه انتخاب شده.

telegram-bot-guide-menu.salam
واردسازی تلگرام.بات

تابع فهرست(): رشته:
    ناپایا اول := وکتور {} برگردان وکتور<رشته>
    اول.بیفزا(بات.دکمه درون خطی("چای"، "order:tea"))
    اول.بیفزا(بات.دکمه درون خطی("قهوه"، "order:coffee"))
    ناپایا دوم := وکتور {} برگردان وکتور<رشته>
    دوم.بیفزا(بات.دکمه درون خطی با پیوند("ساعت کاری"، "https://example.com/hours"))
    ناپایا ردیف ها := وکتور {} برگردان وکتور<رشته>
    ردیف ها.بیفزا(بات.ردیف(اول))
    ردیف ها.بیفزا(بات.ردیف(دوم))
    برگشت بات.صفحه کلید درون خطی(ردیف ها)
پایان

تابع ریشه:
    ناپایا گزینه ها := بات.گزینه های ارسال {}
    گزینه ها.صفحه‌کلید = فهرست()
    سرچاپ بات.پاسخ پیام با گزینه ها(۴۲، "چه میل دارید؟"، گزینه ها)

    کلیک := بات.تجزیه بروزرسانی(`{"update_id":7,"callback_query":{"id":"cq7","data":"order:tea","from":{"id":42,"first_name":"سارا"},"message":{"message_id":31,"chat":{"id":42,"type":"private"}}}}`)
    اگر کلیک.فشردن دکمه دارد:
        پرسش := کلیک.فشردن دکمه
        سرچاپ بات.پاسخ فوری پرسمان بازخوان(پرسش.شناسه، "ثبت شد"، نادرست)
        اگر پرسش.پیام دارد:
            سرچاپ بات.پاسخ ویرایش متن پیام(پرسش.پیام.گفتگو.شناسه، پرسش.پیام.شناسه پیام، "یک چای برای " + پرسش.کاربر.نام، "")
        پایان
    پایان
پایان
خروجی{"method": "sendMessage", "chat_id": 42, "text": "چه میل دارید؟", "reply_markup": {"inline_keyboard": [[{"text": "چای", "callback_data": "order:tea"}, {"text": "قهوه", "callback_data": "order:coffee"}], [{"text": "ساعت کاری", "url": "https://example.com/hours"}]]}} {"method": "answerCallbackQuery", "callback_query_id": "cq7", "text": "ثبت شد"} {"method": "editMessageText", "chat_id": 42, "message_id": 31, "text": "یک چای برای سارا"}

برای callback_data قالب کوچکی از خودتان بگذارید، مثل order:tea، و وقتی رسید با رشته آن را بشکنید. هرگز به آن اعتماد نکنید: هر کسی می‌تواند هر داده‌ای به بات شما بفرستد، پس پیش از هر کاری بسنجید که آن سفارش وجود دارد.

باتی که با دریافت طولانی کار می‌کند

دریافت طولانی (long polling) نشانی عمومی لازم ندارد، پس ساده‌ترین راه اجرای بات از روی رایانه‌ی خودتان است. حلقه دریافت از تلگرام بروزرسانی‌های تازه را می‌خواهد، اگر چیزی نباشد تا چند ثانیه‌ی داده شده منتظر می‌ماند، تابع شما را برای هر کدام صدا می‌زند و جای خواندن را به خاطر می‌سپارد تا هر بروزرسانی فقط یک بار پردازش شود. بات یا با دریافت طولانی کار می‌کند یا با وب‌هوک، نه هر دو؛ برای همین برنامه اول هر وب‌هوکی را حذف می‌کند. تنظیم دستورات بات فهرست دستورهایی را پر می‌کند که تلگرام کنار جعبه‌ی متن نشان می‌دهد.

telegram-bot-guide-poll.salam
واردسازی تلگرام.بات
واردسازی محیط

تابع ریشه:
    توکن := محیط.دریافت("TELEGRAM_TOKEN")
    اگر توکن.طول() == ۰:
        سرچاپ "TELEGRAM_TOKEN را برابر توکنی بگذارید که BotFather داده است"
        برگشت ۱
    پایان
    ربات := بات.بات جدید(توکن)
    من := بات.دریافت من(ربات)
    اگر وارونه بات.موفق(من):
        سرچاپ "توکن پذیرفته نشد:"، من.کد خطا، من.توضیح، من.خطای شبکه
        برگشت ۱
    پایان
    _ := بات.حذف وب هوک(ربات)
    ناپایا دستورها := وکتور {} برگردان وکتور<رشته>
    دستورها.بیفزا(بات.دستور بات("start"، "سلام کردن"))
    دستورها.بیفزا(بات.دستور بات("echo"، "تکرار متن شما"))
    _ := بات.تنظیم دستورات بات(ربات، دستورها)
    سرچاپ "در حال دریافت پیام‌ها، برای توقف Ctrl+C را بزنید"
    بات.حلقه دریافت(ربات، ۳۰، (ب: بات.بروزرسانی):
        اگر وارونه ب.پیام دارد:
            برگشت
        پایان
        پ := ب.پیام
        _ := بات.ارسال کنش گفتگو(ربات، پ.گفتگو.شناسه، "typing")
        اگر بات.نام دستور(پ.متن) == "echo":
            _ := بات.ارسال پیام(ربات، پ.گفتگو.شناسه، بات.آرگومان های دستور(پ.متن))
        وگرنه:
            _ := بات.ارسال پیام(ربات، پ.گفتگو.شناسه، "سلام " + پ.فرستنده.نام + "، بنویس /echo و یک متن")
        پایان
    پایان)
پایان

آن را با توکن BotFather در متغیر محیطی اجرا کنید:

TELEGRAM_TOKEN=123456:ABC... salam run telegram-bot-guide-poll.salam

هر فراخوانی «ارسال ...» یک پاسخ ای پی آی برمی‌گرداند. آن را با موفق بسنجید: وقتی شکست می‌خورد، error_code و description دلیل تلگرام را دارند (۴۲۹ یعنی زیادی تند می‌فرستید) و اگر اصلا به تلگرام نرسیده باشید http_err پر می‌شود.

یک سرور وب‌هوک

در محیط واقعی معمولاً وب‌هوک را انتخاب می‌کنند: تلگرام هر بروزرسانی را همان لحظه به نشانی HTTPS شما می‌فرستد و لازم نیست کسی مدام بپرسد. تنظیم وب هوک با رمز نشانی و یک رمز را ثبت می‌کند و از آن به بعد تلگرام آن رمز را در سرآیند X-Telegram-Bot-Api-Secret-Token (ثابت سرآیند راز) هر درخواست می‌گذارد. هر درخواستی که این سرآیند را نداشته باشد از تلگرام نیامده و پاسخش ۴۰۱ است.

telegram-bot-guide-webhook.salam
واردسازی تلگرام.بات
واردسازی شبکه.اچ تی تی پی
واردسازی شبکه.مسیریاب
واردسازی محیط

ناپایا راز := ""

تابع قلاب(ز: صحیح۶۴):
    اگر اچ تی تی پی.سرصفحه(ز، بات.سرآیند راز) != راز:
        اچ تی تی پی.تنظیم وضعیت(ز، ۴۰۱)
        اچ تی تی پی.متن(ز، "")
        برگشت
    پایان
    ب := بات.تجزیه بروزرسانی(اچ تی تی پی.بدنه(ز))
    اگر وارونه ب.پیام دارد:
        اچ تی تی پی.متن(ز، "")
        برگشت
    پایان
    پ := ب.پیام
    اچ تی تی پی.تنظیم سرصفحه(ز، "Content-Type"، "application/json")
    اچ تی تی پی.متن(ز، بات.پاسخ پیام(پ.گفتگو.شناسه، "رسید: " + پ.متن))
پایان

تابع ریشه:
    توکن := محیط.دریافت("TELEGRAM_TOKEN")
    نشانی عمومی := محیط.دریافت("PUBLIC_URL")
    راز = محیط.دریافت("WEBHOOK_SECRET")
    اگر توکن.طول() == ۰ یا نشانی عمومی.طول() == ۰ یا راز.طول() == ۰:
        سرچاپ "TELEGRAM_TOKEN و PUBLIC_URL و WEBHOOK_SECRET را تنظیم کنید"
        برگشت ۱
    پایان
    ربات := بات.بات جدید(توکن)
    تنظیم := بات.تنظیم وب هوک با رمز(ربات، نشانی عمومی + "/telegram"، راز)
    اگر وارونه بات.موفق(تنظیم):
        سرچاپ "تنظیم وب هوک شکست خورد:"، تنظیم.کد خطا، تنظیم.توضیح
        برگشت ۱
    پایان
    ناپایا م := مسیریاب.مسیریاب جدید()
    مسیریاب.ارسال(م، "/telegram"، قلاب)
    ناپایا س := اچ تی تی پی.سرور جدید(۸۴۴۳)
    اچ تی تی پی.استفاده(س، م)
    سرچاپ "وب هوک روی درگاه ۸۴۴۳"
    اچ تی تی پی.اجرا(س)
پایان

جواب در بدنه‌ی پاسخ برمی‌گردد: پاسخ پیام جیسون یک فراخوانی sendMessage را می‌سازد و تلگرام اجرایش می‌کند. وقتی حرفی برای گفتن نیست بدنه را خالی بگذارید، و زود جواب بدهید، چون تلگرام تا پاسخ نرسد بروزرسانی بعدی همان گفتگو را نمی‌فرستد. تلگرام فقط نشانی‌های HTTPS روی درگاه‌های ۴۴۳، ۸۰، ۸۸ یا ۸۴۴۳ را صدا می‌زند؛ پس برنامه را پشت پراکسی‌ای با گواهی، یا هنگام توسعه پشت یک تونل، اجرا کنید. تنظیم وب هوک با رمز بروزرسانی‌های در انتظار را هم دور می‌ریزد تا راه‌اندازی دوباره پیام‌های کهنه را تکرار نکند.

گونه‌ها

کاربر User

ساختار کاربر
یک کاربر تلگرام.
نامانگلیسیگونهتوضیح
شناسهidصحیح۶۴ = 0شناسه.
بات استis_botمنطقی = نادرستبات است.
نامfirst_nameرشته = ""نام.
نام خانوادگیlast_nameرشته = ""نام خانوادگی.
نام کاربریusernameرشته = ""نام کاربری.
کد زبانlanguage_codeرشته = ""زبان کاربر، مثل fa.
telegram-bot-Parse.salam
واردسازی تلگرام.بات

تابع ریشه:
    متن := `{"update_id":10,"message":{"message_id":5,"date":1700000000,"text":"/start hello","chat":{"id":42,"type":"private","first_name":"مریم","username":"maryam"},"from":{"id":42,"is_bot":false,"first_name":"مریم","language_code":"fa"},"reply_to_message":{"message_id":4,"from":{"id":7,"first_name":"علی"}}}}`
    ب := بات.تجزیه بروزرسانی(متن)
    سرچاپ ب.شناسه، ب.پیام دارد، ب.فشردن دکمه دارد
    پ := ب.پیام
    سرچاپ پ.شناسه پیام، پ.زمان، پ.متن، پ.گفتگو.شناسه، پ.گفتگو.نوع، پ.گفتگو.نام، پ.گفتگو.نام کاربری
    سرچاپ پ.فرستنده.شناسه، پ.فرستنده.بات است، پ.فرستنده.کد زبان، پ.پیام پاسخ‌داده‌شده.شناسه پیام، پ.پیام پاسخ‌داده‌شده.شناسه کاربر، پ.پیام پاسخ‌داده‌شده.نام کاربر
    سرچاپ بات.دستور است(پ.متن)، بات.نام دستور(پ.متن)، بات.آرگومان های دستور(پ.متن)
    سرچاپ بات.دستور است("سلام")، بات.نام دستور("/help@my_bot")

    همه := بات.تجزیه بروزرسانی ها(`{"ok":true,"result":[{"update_id":11,"callback_query":{"id":"cq1","data":"yes","from":{"id":42,"first_name":"مریم"},"message":{"message_id":9,"chat":{"id":42,"type":"private"}}}},{"update_id":12,"inline_query":{"id":"iq1","query":"کتاب","offset":"","from":{"id":42,"first_name":"مریم"}}}]}`)
    سرچاپ همه.طول()
    ق := همه[۰].فشردن دکمه
    سرچاپ همه[۰].فشردن دکمه دارد، ق.شناسه، ق.داده، ق.کاربر.نام، ق.پیام دارد، ق.پیام.شناسه پیام
    د := همه[۱].پرسمان درون‌خطی
    سرچاپ همه[۱].پرسمان درون‌خطی دارد، د.شناسه، د.متن، د.جابجایی.طول()
    سرچاپ بات.تجزیه کاربر(`{"id":1,"first_name":"x","last_name":"y","is_bot":true}`).نام خانوادگی
    سرچاپ بات.تجزیه گفتگو(`{"id":-100,"type":"supergroup","title":"گروه"}`).عنوان
    سرچاپ بات.تجزیه پیام(`{"message_id":1,"caption":"عکس","chat":{"id":1}}`).زیرنویس
    سرچاپ بات.تجزیه پرسمان بازخوان(`{"id":"q","data":"d"}`).داده، بات.تجزیه پرسمان درون خطی(`{"id":"i","query":"q"}`).متن
    سرچاپ بات.تجزیه بروزرسانی(`{"update_id":13,"channel_post":{"message_id":1,"text":"خبر","chat":{"id":-5}}}`).پست کانال.متن

    ناپایا ردیف۱ := وکتور {} برگردان وکتور<رشته>
    ردیف۱.افزودن(بات.دکمه درون خطی("بله"، "yes"))
    ردیف۱.افزودن(بات.دکمه درون خطی("خیر"، "no"))
    ناپایا ردیف۲ := وکتور {} برگردان وکتور<رشته>
    ردیف۲.افزودن(بات.دکمه درون خطی با پیوند("سایت"، "https://salamlang.ir"))
    ناپایا ردیف‌ها := وکتور {} برگردان وکتور<رشته>
    ردیف‌ها.افزودن(بات.ردیف(ردیف۱))
    ردیف‌ها.افزودن(بات.ردیف(ردیف۲))
    سرچاپ بات.صفحه کلید درون خطی(ردیف‌ها)
    ناپایا ساده := وکتور {} برگردان وکتور<رشته>
    ساده.افزودن(بات.دکمه صفحه کلید("منو"))
    ناپایا ردیف‌های ساده := وکتور {} برگردان وکتور<رشته>
    ردیف‌های ساده.افزودن(بات.ردیف(ساده))
    سرچاپ بات.صفحه کلید پاسخ(ردیف‌های ساده)
    سرچاپ بات.حذف صفحه کلید()، بات.پاسخ اجباری()
    سرچاپ بات.دستور بات("start"، "شروع")

    ربات := بات.بات جدید("123:ABC")
    سرچاپ بات.پیوند فایل(ربات، "photos/file_1.jpg")
    سرچاپ بات.پاسخ پیام(۴۲، "سلام")
    ناپایا گ := بات.گزینه های ارسال {}
    گ.قالب متن = "HTML"
    گ.شناسه پیام پاسخ = ۵
    گ.بی‌صدا = درست
    سرچاپ بات.پاسخ پیام با گزینه ها(۴۲، "<b>سلام</b>"، گ)
    سرچاپ بات.پاسخ فوری پرسمان بازخوان("cq1"، "ثبت شد"، نادرست)
    سرچاپ بات.پاسخ کنش گفتگو(۴۲، "typing")
    سرچاپ بات.پاسخ ویرایش متن پیام(۴۲، ۹، "به‌روز شد"، بات.حذف صفحه کلید())
    سرچاپ بات.سرآیند راز
پایان
خروجی10 true false 5 1700000000 /start hello 42 private مریم maryam 42 false fa 4 7 علی true start hello false help 2 true cq1 yes مریم true 9 true iq1 کتاب 0 y گروه عکس d q خبر {"inline_keyboard": [[{"text": "بله", "callback_data": "yes"}, {"text": "خیر", "callback_data": "no"}], [{"text": "سایت", "url": "https://salamlang.ir"}]]} {"keyboard": [["منو"]], "resize_keyboard": true} {"remove_keyboard": true} {"force_reply": true} {"command": "start", "description": "شروع"} https://api.telegram.org/file/bot123:ABC/photos/file_1.jpg {"method": "sendMessage", "chat_id": 42, "text": "سلام"} {"method": "sendMessage", "chat_id": 42, "text": "<b>سلام</b>", "parse_mode": "HTML", "disable_notification": true, "reply_to_message_id": 5} {"method": "answerCallbackQuery", "callback_query_id": "cq1", "text": "ثبت شد"} {"method": "sendChatAction", "chat_id": 42, "action": "typing"} {"method": "editMessageText", "chat_id": 42, "message_id": 9, "text": "به‌روز شد", "reply_markup": {"remove_keyboard": true}} X-Telegram-Bot-Api-Secret-Token

گفتگو Chat

ساختار گفتگو
یک گفتگو: خصوصی، گروه یا کانال.
نامانگلیسیگونهتوضیح
شناسهidصحیح۶۴ = 0شناسه؛ برای گروه‌ها منفی.
نوعchat_typeرشته = ""نوع: private، group، supergroup یا channel.
عنوانtitleرشته = ""عنوان گروه یا کانال.
نام کاربریusernameرشته = ""نام کاربری.
نامfirst_nameرشته = ""نام.
نام خانوادگیlast_nameرشته = ""نام خانوادگی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

پاسخ به ReplyTo

ساختار پاسخ به
پیامی که این پیام پاسخ آن است.
نامانگلیسیگونهتوضیح
شناسه پیامmessage_idصحیح۶۴ = 0شناسه‌ی آن پیام.
شناسه کاربرuser_idصحیح۶۴ = 0شناسه‌ی فرستنده‌اش.
نام کاربرuser_nameرشته = ""نام فرستنده‌اش.
telegram-bot-Bot.salam
واردسازی تلگرام.بات
واردسازی محیط

تابع رسیدگی(ب: بات.بروزرسانی):
    اگر وارونه ب.پیام دارد:
        برگشت
    پایان
    سرچاپ ب.پیام.فرستنده.نام، ب.پیام.متن
پایان

تابع ریشه:
    ربات := بات.بات جدید(محیط.دریافت("TELEGRAM_TOKEN"))
    من := بات.دریافت من(ربات)
    اگر وارونه بات.موفق(من):
        سرچاپ من.کد خطا، من.توضیح، من.وضعیت اچ تی تی پی، من.خطای شبکه
        برگشت
    پایان
    سرچاپ من.موفق، من.نتیجه
    گفتگو := ۴۲ برگردان صحیح۶۴
    _ := بات.ارسال پیام(ربات، گفتگو، "سلام")
    _ := بات.ارسال پیام(ربات، "@my_channel"، "خبر تازه")
    ناپایا گ := بات.گزینه های ارسال {}
    گ.قالب متن = "Markdown"
    گ.صفحه‌کلید = بات.حذف صفحه کلید()
    _ := بات.ارسال پیام با گزینه ها(ربات، گفتگو، "*مهم*"، گ)
    _ := بات.ارسال عکس(ربات، گفتگو، "https://example.com/a.jpg"، "عکس")
    _ := بات.ارسال سند(ربات، گفتگو، "BQACAgQAAx"، "")
    _ := بات.ارسال ویدیو(ربات، گفتگو، "https://example.com/v.mp4"، "")
    _ := بات.ارسال صدا(ربات، گفتگو، "https://example.com/a.mp3"، "")
    _ := بات.ارسال پیام صوتی(ربات، گفتگو، "AwACAgQ"، "")
    _ := بات.ارسال استیکر(ربات، گفتگو، "CAACAgI")
    _ := بات.ارسال موقعیت(ربات، گفتگو، ۳۵.۶۹۹۷، ۵۱.۳۳۸)
    _ := بات.ارسال مخاطب(ربات، گفتگو، "+989120000000"، "علی")
    _ := بات.ارسال کنش گفتگو(ربات، گفتگو، "typing")
    _ := بات.ویرایش متن پیام(ربات، گفتگو، ۱۰، "ویرایش شد")
    _ := بات.ارسال دوباره پیام(ربات، گفتگو، ۴۳، ۱۱)
    _ := بات.سنجاق کردن پیام(ربات، گفتگو، ۱۰)
    _ := بات.برداشتن سنجاق پیام(ربات، گفتگو، ۱۰)
    _ := بات.حذف پیام(ربات، گفتگو، ۱۰)
    _ := بات.پاسخ به پرسمان بازخوان(ربات، "cq1"، "ثبت شد")
    _ := بات.پاسخ به پرسمان درون خطی(ربات، "iq1"، "[]")
    پرونده := بات.دریافت فایل(ربات، "AgACAgQ")
    سرچاپ پرونده.نتیجه.طول() > ۰
    _ := بات.دریافت گفتگو(ربات، گفتگو)
    _ := بات.تعداد اعضای گفتگو(ربات، گفتگو)
    _ := بات.عضو گفتگو(ربات، گفتگو، ۷)
    _ := بات.مسدود کردن عضو(ربات، گفتگو، ۷)
    _ := بات.رفع مسدودیت عضو(ربات، گفتگو، ۷)
    _ := بات.ترک گفتگو(ربات، -۱۰۰)
    ناپایا دستورها := وکتور {} برگردان وکتور<رشته>
    دستورها.افزودن(بات.دستور بات("start"، "شروع"))
    _ := بات.تنظیم دستورات بات(ربات، دستورها)
    _ := بات.تنظیم وب هوک(ربات، "https://example.com/hook")
    _ := بات.تنظیم وب هوک با رمز(ربات، "https://example.com/hook"، "راز-من")
    _ := بات.دریافت اطلاعات وب هوک(ربات)
    _ := بات.حذف وب هوک(ربات)
    ناپایا پارامتر := نگاشت {} برگردان نگاشت<رشته، رشته>
    پارامتر.درج("chat_id"، "42")
    _ := بات.فراخوان(ربات، "getChatAdministrators"، پارامتر)
    ب := بات.دریافت بروزرسانی ها(ربات، ۰، ۱۰، ۳۰)
    سرچاپ بات.تجزیه بروزرسانی ها(ب.نتیجه).طول()، ربات.توکن.طول() > ۰
    بات.حلقه دریافت(ربات، ۳۰، (ب: بات.بروزرسانی):
        رسیدگی(ب)
    پایان)
پایان

پیام Message

ساختار پیام
یک پیام.
نامانگلیسیگونهتوضیح
شناسه پیامmessage_idصحیح۶۴ = 0شناسه.
زمانdateصحیح۶۴ = 0زمان بر حسب ثانیه‌ی یونیکس.
گفتگوchatگفتگوگفتگو.
فرستندهfrom_userکاربرفرستنده.
متنtextرشته = ""متن.
زیرنویسcaptionرشته = ""زیرنویس عکس یا پرونده.
پیام پاسخ‌داده‌شدهreply_toپاسخ بهپیام پاسخ‌داده‌شده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

پرسمان بازخوان CallbackQuery

ساختار پرسمان بازخوان
فشردن یک دکمه‌ی درون‌خطی.
نامانگلیسیگونهتوضیح
شناسهidرشته = ""شناسه؛ با آن پاسخ دهید.
کاربرfrom_userکاربرکاربر.
پیامmessageپیامپیامی که دکمه در آن بود.
پیام داردhas_messageمنطقی = نادرستپیام دارد.
دادهdataرشته = ""داده‌ی دکمه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

پرسمان درون خطی InlineQuery

ساختار پرسمان درون خطی
پرسمان درون‌خطی، وقتی کاربر @bot می‌نویسد.
نامانگلیسیگونهتوضیح
شناسهidرشته = ""شناسه.
کاربرfrom_userکاربرکاربر.
متنqueryرشته = ""متن.
جابجاییoffsetرشته = ""جای صفحه‌بندی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

بروزرسانی Update

ساختار بروزرسانی
یک رویداد از تلگرام؛ فقط یکی از بخش‌هایش پر است.
نامانگلیسیگونهتوضیح
شناسهupdate_idصحیح۶۴ = 0شناسه؛ برای دریافت بروزرسانی ها بعدی یکی بیشتر بدهید.
پیامmessageپیامپیام.
پیام داردhas_messageمنطقی = نادرستپیام دارد.
پست کانالchannel_postپیامپست کانال.
پست کانال داردhas_channel_postمنطقی = نادرستپست کانال دارد.
فشردن دکمهcallback_queryپرسمان بازخوانفشردن دکمه.
فشردن دکمه داردhas_callback_queryمنطقی = نادرستدکمه دارد.
پرسمان درون‌خطیinline_queryپرسمان درون خطیپرسمان درون‌خطی.
پرسمان درون‌خطی داردhas_inline_queryمنطقی = نادرستپرسمان درون‌خطی دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

پاسخ ای پی آی ApiResponse

ساختار پاسخ ای پی آی
پاسخ Bot API.
نامانگلیسیگونهتوضیح
موفقokمنطقی = نادرستموفق بود.
نتیجهresultرشته = ""نتیجه به شکل جیسون.
توضیحdescriptionرشته = ""توضیح خطا.
کد خطاerror_codeصحیح۶۴ = 0کد خطای تلگرام.
وضعیت اچ تی تی پیhttp_statusصحیح = 0کد وضعیت HTTP.
خطای شبکهhttp_errرشته = ""خطای شبکه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

گزینه های ارسال SendOptions

ساختار گزینه های ارسال
گزینه‌های فرستادن پیام.
نامانگلیسیگونهتوضیح
قالب متنparse_modeرشته = ""قالب متن: HTML یا MarkdownV2.
بی‌صداdisable_notificationمنطقی = نادرستبی صدا فرستاده شود.
شناسه پیام پاسخreply_to_message_idصحیح۶۴ = 0پاسخ به این پیام.
صفحه‌کلیدreply_markupرشته = ""صفحه‌کلید به شکل جیسون.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

بات Bot

ساختار بات
یک بات.
نامانگلیسیگونهتوضیح
توکنtokenرشته = ""توکن از BotFather؛ آن را پنهان نگه دارید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

پایاها و متغیرها

سرآیند راز SECRET_HEADER

پایا سرآیند راز: رشته = "X-Telegram-بات-Api-Secret-Token"
نام سرآیندی که رمز وب‌هوک در آن می‌آید.
telegram-bot-Webhook.salam
واردسازی تلگرام.بات
واردسازی شبکه.اچ تی تی پی
واردسازی شبکه.مسیریاب

تابع وب‌هوک(ز: صحیح۶۴):
    اگر اچ تی تی پی.سرصفحه(ز، بات.سرآیند راز) != "راز-من":
        اچ تی تی پی.تنظیم وضعیت(ز، ۴۰۳)
        اچ تی تی پی.متن(ز، "forbidden")
        برگشت
    پایان
    ب := بات.تجزیه بروزرسانی(اچ تی تی پی.بدنه(ز))
    اگر ب.پیام دارد و بات.دستور است(ب.پیام.متن):
        پاسخ := "دستور " + بات.نام دستور(ب.پیام.متن) + " رسید"
        اچ تی تی پی.جیسون(ز، بات.پاسخ پیام(ب.پیام.گفتگو.شناسه، پاسخ))
    وگرنه ب.فشردن دکمه دارد:
        اچ تی تی پی.جیسون(ز، بات.پاسخ فوری پرسمان بازخوان(ب.فشردن دکمه.شناسه، "باشه"، درست))
    وگرنه:
        اچ تی تی پی.متن(ز، "ok")
    پایان
پایان

تابع ریشه:
    ناپایا م := مسیریاب.مسیریاب جدید()
    مسیریاب.ارسال(م، "/hook"، وب‌هوک)
    ناپایا س := اچ تی تی پی.سرور جدید(۱۹۶۱۲)
    اچ تی تی پی.استفاده(س، م)
    _ := اچ تی تی پی.اجرا در پس زمینه(س)

    ناپایا سر := اچ تی تی پی.سرصفحه جدید()
    سر.درج(بات.سرآیند راز، "راز-من")
    سر.درج("Content-Type"، "application/json")
    پ := اچ تی تی پی.ارسال با("http://127.0.0.1:19612/hook"، `{"update_id":1,"message":{"message_id":2,"text":"/start","chat":{"id":42,"type":"private"}}}`، سر)
    سرچاپ اچ تی تی پی.وضعیت(پ)، اچ تی تی پی.بدنه(پ)
    پ۲ := اچ تی تی پی.ارسال با("http://127.0.0.1:19612/hook"، `{"update_id":2,"callback_query":{"id":"cq9","data":"x","from":{"id":42}}}`، سر)
    سرچاپ اچ تی تی پی.بدنه(پ۲)
    پ۳ := اچ تی تی پی.ارسال("http://127.0.0.1:19612/hook"، "{}")
    سرچاپ اچ تی تی پی.وضعیت(پ۳)
پایان
خروجی200 {"method": "sendMessage", "chat_id": 42, "text": "دستور start رسید"} {"method": "answerCallbackQuery", "callback_query_id": "cq9", "text": "باشه", "show_alert": true} 403

تابع‌ها

تنظیم وب هوک با رمز SetWebhookSecret

تابع تنظیم وب هوک با رمز(bot: بات، url: رشته، secret_token: رشته): پاسخ ای پی آی
وب‌هوک با رمزی که تلگرام در سرآیند سرآیند راز می‌فرستد؛ با آن درخواست‌های جعلی را رد کنید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

پاسخ پیام ReplyMessage

تابع پاسخ پیام(chat_id: صحیح۶۴، text: رشته): رشته
پاسخ وب‌هوک که پیام می‌فرستد؛ آن را بدنه‌ی پاسخ HTTP کنید تا درخواست جداگانه لازم نباشد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Webhook.salam

پاسخ پیام با گزینه ها ReplyMessageOptions

تابع پاسخ پیام با گزینه ها(chat_id: صحیح۶۴، text: رشته، opts: گزینه های ارسال): رشته
مثل تابع بالا، با گزینه‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

پاسخ ویرایش متن پیام ReplyEditMessageText

تابع پاسخ ویرایش متن پیام(chat_id: صحیح۶۴، message_id: صحیح۶۴، text: رشته، reply_markup: رشته): رشته
پاسخ وب‌هوک که متن پیام را ویرایش می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

پاسخ فوری پرسمان بازخوان ReplyAnswerCallbackQuery

تابع پاسخ فوری پرسمان بازخوان(callback_query_id: رشته، text: رشته، show_alert: منطقی): رشته
پاسخ وب‌هوک به فشردن دکمه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Webhook.salam

پاسخ کنش گفتگو ReplyChatAction

تابع پاسخ کنش گفتگو(chat_id: صحیح۶۴، action: رشته): رشته
پاسخ وب‌هوک با وضعیت گفتگو.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

تجزیه کاربر ParseUser

تابع تجزیه کاربر(raw: رشته): کاربر
کاربر را از جیسون می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

تجزیه گفتگو ParseChat

تابع تجزیه گفتگو(raw: رشته): گفتگو
گفتگو را از جیسون می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

تجزیه پیام ParseMessage

تابع تجزیه پیام(raw: رشته): پیام
پیام را از جیسون می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

تجزیه پرسمان بازخوان ParseCallbackQuery

تابع تجزیه پرسمان بازخوان(raw: رشته): پرسمان بازخوان
فشردن دکمه را از جیسون می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

تجزیه پرسمان درون خطی ParseInlineQuery

تابع تجزیه پرسمان درون خطی(raw: رشته): پرسمان درون خطی
پرسمان درون‌خطی را از جیسون می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

تجزیه بروزرسانی ParseUpdate

تابع تجزیه بروزرسانی(raw: رشته): بروزرسانی
یک بروزرسانی را از جیسون می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

تجزیه بروزرسانی ها ParseUpdates

تابع تجزیه بروزرسانی ها(raw: رشته): وکتور<بروزرسانی>
نتیجه‌ی getUpdates را به فهرست بروزرسانی‌ها تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

بات جدید NewBot

تابع بات جدید(token: رشته): بات
بات با توکن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

موفق Ok

تابع موفق(resp: پاسخ ای پی آی): منطقی
پاسخ موفق بود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

فراخوان Call

تابع فراخوان(bot: بات، method: رشته، params: نگاشت<رشته، رشته>): پاسخ ای پی آی
هر روش Bot API را با پارامترها صدا می‌زند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

دریافت من GetMe

تابع دریافت من(bot: بات): پاسخ ای پی آی
اطلاعات خود بات؛ برای آزمودن توکن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

دریافت بروزرسانی ها GetUpdates

تابع دریافت بروزرسانی ها(bot: بات، offset: صحیح۶۴، limit: صحیح۶۴، timeout: صحیح۶۴): پاسخ ای پی آی
بروزرسانی‌ها را از جای داده‌شده با انتظار طولانی می‌گیرد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال پیام SendMessage

تابع ارسال پیام(bot: بات، chat_id: صحیح۶۴، text: رشته): پاسخ ای پی آی
پیام متنی می‌فرستد؛ گفتگو با شناسه‌ی عددی یا نام کانال مثل @channel.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال پیام SendMessage

تابع ارسال پیام(bot: بات، chat_id: رشته، text: رشته): پاسخ ای پی آی
پیام متنی می‌فرستد؛ گفتگو با شناسه‌ی عددی یا نام کانال مثل @channel.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال پیام با گزینه ها SendMessageOptions

تابع ارسال پیام با گزینه ها(bot: بات، chat_id: صحیح۶۴، text: رشته، opts: گزینه های ارسال): پاسخ ای پی آی
پیام با گزینه‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال عکس SendPhoto

تابع ارسال عکس(bot: بات، chat_id: صحیح۶۴، photo: رشته، caption: رشته): پاسخ ای پی آی
عکس را با نشانی عمومی یا file_id عکسی که تلگرام از قبل دارد، همراه زیرنویس، می‌فرستد. بارگذاری پرونده‌ی محلی پشتیبانی نمی‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال سند SendDocument

تابع ارسال سند(bot: بات، chat_id: صحیح۶۴، document: رشته، caption: رشته): پاسخ ای پی آی
پرونده را با نشانی عمومی یا file_id، همراه زیرنویس، می‌فرستد. بارگذاری پرونده‌ی محلی پشتیبانی نمی‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال ویدیو SendVideo

تابع ارسال ویدیو(bot: بات، chat_id: صحیح۶۴، video: رشته، caption: رشته): پاسخ ای پی آی
ویدیو را با نشانی یا شناسه‌ی پرونده و زیرنویس می‌فرستد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال صدا SendAudio

تابع ارسال صدا(bot: بات، chat_id: صحیح۶۴، audio: رشته، caption: رشته): پاسخ ای پی آی
آهنگ را با نشانی یا شناسه‌ی پرونده و زیرنویس می‌فرستد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال پیام صوتی SendVoice

تابع ارسال پیام صوتی(bot: بات، chat_id: صحیح۶۴، voice: رشته، caption: رشته): پاسخ ای پی آی
پیام صوتی را با نشانی یا شناسه‌ی پرونده و زیرنویس می‌فرستد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال استیکر SendSticker

تابع ارسال استیکر(bot: بات، chat_id: صحیح۶۴، sticker: رشته): پاسخ ای پی آی
استیکر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال موقعیت SendLocation

تابع ارسال موقعیت(bot: بات، chat_id: صحیح۶۴، latitude: اعشار۶۴، longitude: اعشار۶۴): پاسخ ای پی آی
موقعیت جغرافیایی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال مخاطب SendContact

تابع ارسال مخاطب(bot: بات، chat_id: صحیح۶۴، phone_number: رشته، first_name: رشته): پاسخ ای پی آی
مخاطب.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال کنش گفتگو SendChatAction

تابع ارسال کنش گفتگو(bot: بات، chat_id: صحیح۶۴، action: رشته): پاسخ ای پی آی
وضعیتی مثل «در حال نوشتن» نشان می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ویرایش متن پیام EditMessageText

تابع ویرایش متن پیام(bot: بات، chat_id: صحیح۶۴، message_id: صحیح۶۴، text: رشته): پاسخ ای پی آی
متن پیام فرستاده‌شده را ویرایش می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

حذف پیام DeleteMessage

تابع حذف پیام(bot: بات، chat_id: صحیح۶۴، message_id: صحیح۶۴): پاسخ ای پی آی
پیام را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ارسال دوباره پیام ForwardMessage

تابع ارسال دوباره پیام(bot: بات، chat_id: صحیح۶۴، from_chat_id: صحیح۶۴، message_id: صحیح۶۴): پاسخ ای پی آی
پیامی را از گفتگوی دیگر می‌فرستد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

سنجاق کردن پیام PinChatMessage

تابع سنجاق کردن پیام(bot: بات، chat_id: صحیح۶۴، message_id: صحیح۶۴): پاسخ ای پی آی
پیام را سنجاق می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

برداشتن سنجاق پیام UnpinChatMessage

تابع برداشتن سنجاق پیام(bot: بات، chat_id: صحیح۶۴، message_id: صحیح۶۴): پاسخ ای پی آی
سنجاق را برمی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

پاسخ به پرسمان بازخوان AnswerCallbackQuery

تابع پاسخ به پرسمان بازخوان(bot: بات، callback_query_id: رشته، text: رشته): پاسخ ای پی آی
به فشردن دکمه پاسخ می‌دهد؛ تا پاسخ ندهید، دکمه در حال بارگذاری می‌ماند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

پاسخ به پرسمان درون خطی AnswerInlineQuery

تابع پاسخ به پرسمان درون خطی(bot: بات، inline_query_id: رشته، results: رشته): پاسخ ای پی آی
نتیجه‌های پرسمان درون‌خطی را می‌فرستد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

دریافت فایل GetFile

تابع دریافت فایل(bot: بات، file_id: رشته): پاسخ ای پی آی
اطلاعات پرونده برای دانلود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

پیوند فایل FileURL

تابع پیوند فایل(bot: بات، file_path: رشته): رشته
نشانی دانلود پرونده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

دریافت گفتگو GetChat

تابع دریافت گفتگو(bot: بات، chat_id: صحیح۶۴): پاسخ ای پی آی
اطلاعات گفتگو.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

تعداد اعضای گفتگو GetChatMemberCount

تابع تعداد اعضای گفتگو(bot: بات، chat_id: صحیح۶۴): پاسخ ای پی آی
شمار اعضا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

عضو گفتگو GetChatMember

تابع عضو گفتگو(bot: بات، chat_id: صحیح۶۴، user_id: صحیح۶۴): پاسخ ای پی آی
وضعیت یک عضو.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

ترک گفتگو LeaveChat

تابع ترک گفتگو(bot: بات، chat_id: صحیح۶۴): پاسخ ای پی آی
بات گفتگو را ترک می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

مسدود کردن عضو BanChatMember

تابع مسدود کردن عضو(bot: بات، chat_id: صحیح۶۴، user_id: صحیح۶۴): پاسخ ای پی آی
عضو را مسدود می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

رفع مسدودیت عضو UnbanChatMember

تابع رفع مسدودیت عضو(bot: بات، chat_id: صحیح۶۴، user_id: صحیح۶۴): پاسخ ای پی آی
مسدودیت را برمی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

تنظیم وب هوک SetWebhook

تابع تنظیم وب هوک(bot: بات، url: رشته): پاسخ ای پی آی
نشانی وب‌هوک را تعیین می‌کند تا تلگرام بروزرسانی‌ها را به آن بفرستد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

حذف وب هوک DeleteWebhook

تابع حذف وب هوک(bot: بات): پاسخ ای پی آی
وب‌هوک را برمی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

دریافت اطلاعات وب هوک GetWebhookInfo

تابع دریافت اطلاعات وب هوک(bot: بات): پاسخ ای پی آی
وضعیت وب‌هوک.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

دستور بات BotCommand

تابع دستور بات(command: رشته، description: رشته): رشته
یک دستور برای منوی بات.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

تنظیم دستورات بات SetMyCommands

تابع تنظیم دستورات بات(bot: بات، commands: وکتور<رشته>): پاسخ ای پی آی
منوی دستورهای بات را تعیین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam

دکمه درون خطی InlineButton

تابع دکمه درون خطی(text: رشته، callback_data: رشته): رشته
دکمه‌ی درون‌خطی با داده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

دکمه درون خطی با پیوند InlineButtonURL

تابع دکمه درون خطی با پیوند(text: رشته، url: رشته): رشته
دکمه‌ی درون‌خطی با پیوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

دکمه صفحه کلید KeyboardButton

تابع دکمه صفحه کلید(text: رشته): رشته
دکمه‌ی صفحه‌کلید پاسخ.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

ردیف Row

تابع ردیف(buttons: وکتور<رشته>): رشته
یک ردیف دکمه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

صفحه کلید درون خطی InlineKeyboardMarkup

تابع صفحه کلید درون خطی(rows: وکتور<رشته>): رشته
صفحه‌کلید درون‌خطی از ردیف‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

صفحه کلید پاسخ ReplyKeyboardMarkup

تابع صفحه کلید پاسخ(rows: وکتور<رشته>): رشته
صفحه‌کلید پاسخ از ردیف‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

حذف صفحه کلید RemoveKeyboard

تابع حذف صفحه کلید(): رشته
صفحه‌کلید پاسخ را برمی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

پاسخ اجباری ForceReply

تابع پاسخ اجباری(): رشته
کاربر را به پاسخ دادن وامی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

دستور است IsCommand

تابع دستور است(text: رشته): منطقی
متن با / آغاز می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

نام دستور CommandName

تابع نام دستور(text: رشته): رشته
نام دستور، بی / و بی @bot.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

آرگومان های دستور CommandArgs

تابع آرگومان های دستور(text: رشته): رشته
بقیه‌ی متن پس از دستور.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Parse.salam

حلقه دریافت Poll

تابع حلقه دریافت(bot: بات، timeout: صحیح۶۴، handler: تابع(بروزرسانی))
حلقه‌ی دریافت: بروزرسانی‌ها را با انتظار طولانی می‌گیرد و برای هر کدام تابع را صدا می‌زند؛ برنمی‌گردد. بروزرسانی‌ها یکی‌یکی پردازش می‌شوند و درخواست شکست‌خورده یک ثانیه بعد دوباره فرستاده می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: telegram-bot-Bot.salam