وبلاگ محمد قاهری نجف آبادی

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

وبلاگ محمد قاهری نجف آبادی

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

۳ مطلب در مهر ۱۳۹۶ ثبت شده است

  • ۱
  • ۰

درباره Regex ها

Regex ها یا Regular Expression ها عباراتی هستند که برای مقایسه رشته های کاراکتری به کار می روند. این عبارات که از به کاربردن علائم و حروف و اعداد ساخته می شوند برای ارزشیابی یا Validate کردن فرم های ورودی نیز به کار می روند
سایت https://regexr.com به شما کمک می کند این عبارات را به درستی بسازید و آزمایش کنید
  • محمد قاهری
  • ۰
  • ۰

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

منظورم از کیبورد همون نوع قدیمی کیبورد تلگرامه نه 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
                                })
                            });
  • محمد قاهری
  • ۰
  • ۰

اگه شما هم کلی تلاش کردید و با تغییر دادن Owner دایرکتوری ها موفق به کار با فایل ها در Centos7 نشدید بدونین که مشکل از SELinux هست.

SELinux دسترسی رو به کلیه دایرکتوری ها و فایل های دارای دسترسی 777 و 755 محدود می کنه

دستورات زیر مشکل من رو حل کرد

chcon -R -t httpd_sys_content_t /path/to/www
chcon -R -t httpd_sys_content_rw_t /path/to/www/dir/for/rw

chcon -R --type httpd_sys_rw_content_t /path/to/your/directory
  • محمد قاهری