وبلاگ محمد قاهری

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

وبلاگ محمد قاهری

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

۱ مطلب با کلمه‌ی کلیدی «کیبورد» ثبت شده است

  • ۰
  • ۰

ممکنه شما هم موقع نوشتن بات های تلگرامی با مدیریت منو ها یا همون کیبورد ها با مشکل مواجه شده باشید

منظورم از کیبورد همون نوع قدیمی کیبورد تلگرامه نه inline_keyboard ها

توضیح درباره کیبورد ها اینکه پس از ارسال اونها به سمت کاربر چند انتخاب وجود داره

1- کیبورد پس از کلیک روی کلیدش همچنان پدیدار باقی بمونه

2- کیبود پس از کلیک روی کلیدش ناپدید بشه (ولی همچنان با کلیک روی آیکن مخصوصش فعال بشه)

3- !! بعد از کلیک روی کلیدش مستقیما کیبورد نابود بشه (این امکان وجود نداره)

معمولا برنامه نویسها فورا راهکار روش اول و دوم رو یاد می گیرند:

برای روش اول کافیه هیچ پارامتری همراه کیبورد ارسال نکنید

و برای روش دوم باید مثل نمونه زیر مقدار one_time_keyboard رو برابر true قرار بدین. البته برای حالت قبل می تونید این مقدار رو برابر false قرار بدین.

$.sendMessage("لطفا با فشردن کلید زیر شماره خود را ارسال کنید",
                                {
                                    reply_markup:JSON.stringify({
                                        keyboard: [
                                          [{ text: 'ارسال شماره همراه من', request_contact: true }]
                                        ],
                                        resize_keyboard:true,
                                        one_time_keyboard:true
                                    })
                                });

اما بریم سر اصل مطلب یعنی

نابود کردن کیبوردها در بات تلگرام

برای این منظور لازمه که یک درخواست ارسال پیام (sendMessage) جدید ارسال کنید و امکان این درخواست در پیام حاوی کیبورد وجود نداره

و لازمه که در پیام جدید در پارامتر reply_markup مقدار remove_keyboard رو برابر true قرار بدید

دقت کنید که این message حتما باید متن داشته باشه حتی یک نقطه!

مثال این درخواست رو با NodeJS یا همون جاوا اسکریپت و با استفاده از ماژول Naltox در ادامه می بینید

$.sendMessage("متن پیام",
                            {
                                reply_markup:JSON.stringify({
                                    remove_keyboard : true
                                })
                            });
  • محمد قاهری