رفتن به مطلب
بازگشایی انجمن! ×
GuardIran

آموزش آپلود و اجرای ربات تلگرام در سرور مجازی


Mr.Python

پست های پیشنهاد شده

با سلام

شما برای اینکه رباتتون همیشه در حال اجرا باشه باید اونو تو یه سیستم همیشه روشن قرار بدید وگرنه ربات که خود به خود اجرا نمیمونه . تو این آموزش ما میخوایم ربات هایی که با کتابخونه pyTelegramBotAPI نوشته شدن (telebot) رو روی سرور اجرا کنیم و همیشه روشن بمونه . البته توجه داشته باشید کد های مربوط به وب سرویس cherrypy نیز در کتابخونه های دیگه ای مثل ptb یا telepot یا ... کار خواهد کرد. (ما اینجا فرض کردیم که شما اطلاع دارید که متد set_webhook چی هست و .. - اگر از کتابخونه های دیگه استفاده میکنید این آموزش هم برای اونا صدق میکنه)

ربات هارو روی سرور مجازی VPS راه اندازی کنید . و بهتره از لینوکس استفاده کنید . پیشنهاد من اوبونتو هست.

مطمین شوید تمام ماژول های موجود در بات رو نصب کنید به وسیله ابزار pip :

این ابزار به راحتی با استفاده از دستور زیر در سرور های لینوکسی قابل نصب است : دومی برای پایتون نسخه دو هست. که نباید هر دو دستور وارد شود . بسته به نسخه پایتون یکی از دستورات رو وارد کنید.

This is the hidden content, please

ترمینال را باز کنید یا CMD و از دستور زیر برای نصب ماژول ها استفاده کنید:

This is the hidden content, please

میدونید که باید بعد از کلمه Install‌نام کتابخونرو بنویسید توضیحات اضافی نمیدیم چون اینارو بلدید.

البته چیزایی که الان میخوایم بگیم تو خود سایت هم موجود هست.

وب هوک webhook : وب سرویس هایی که روی سرور راه اندازی میشن و در مواقعی که به اونها درخواست ارسال بشه پاسخ میدن و به نوعی ربات میخوابه و زمانی که ما بهش نیاز داشتیم ازش استفاده میکنیم . باعث میشه کمتر از پهنای باد استفاده بشه و ارور های مربوط به time out نیز رفع بشه همچنین رم هم کمتر مصرف بشه. یکی از بهترین وب سرویس های پایتون cherrypy هست که خیلی قویه و کار باهاش بسیار راحت.

دو روش برای اجرای ربات وجود داره:

1) بدون استفاده از وب هوک ها

This is the hidden content, please

دومین متد به تازگی به کتابخونه ارسال شده و تو این متد ربات تو یه حلقه با شرط همیشه درست قرار میگیره تا عمل polling همیشه انجام بشه اما ایرادات زیادی داره : استفاده خیلی زیاد از پهنای باند -دریافت ارور های time out به دلیل قطعی ناگهانی - استفاده بیش از حد از رم سرور. این متد ها برای تست و بررسی ربات معمولا تو سیستم های خودمون استفاده میشه تا قبل از اینکه ربات رو روی سرور بذاریم اون رو امتحان کرده باشیم تا ایرادی نداشته باشه. پس به شدت توصیه میشه حتما از وب هوک استفاده کنید.

2)اسفاده از وب هوک ها :

اول باید دو فایل ایجاد کنید برای تاییده درخواست های ارسالی به سرور و تنظیم ssl :

دستورات زیر رو به ترتیب وارد کنید:

This is the hidden content, please

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

نکته مهم : تو دومین دستور اگر عبارت زیر را دیدید باید آی پی سرور رو قرار بدید:

This is the hidden content, please

حالا باید در سرور یه پورت باز کنید (حتما باید یکی از اینها باشد 443, 80, 88  8443 😞

This is the hidden content, please

من 8443 رو انتخاب کردم.

نکته : به جای کلمه guardiran توکن ربات خود را به صورت کامل که از Botfather دریافت کردید بنویسید. ضمنا تمام کد هارا به همین شکل بنویسید .

This is the hidden content, please

همه چی مشخصه فقط بدونید به جای WEBHOOK_HOST و WEBHOOK_LISTEN حتما آی پی سرور مجازیتون رو بدید و مسیر فایلایی هم که درست کردیم رو حتما درست بدید.

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

This is the hidden content, please

اگه با نسخه 3 رباتو نوشتید اولین دستور در غیر اینصورت دومین دستور رو وارد کنید.

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


  • 2 سال بعد...

سلام

اون کدهایی که گذاشتین رو باید داخل سورس روبات بنویسیم یا جای دیگه؟

API_TOKEN = 'guardiran'

WEBHOOK_HOST = '<ip/host where the bot is running>'
WEBHOOK_PORT = 8443
WEBHOOK_LISTEN = '<ip/host where the bot is running>'

اینا رو میگم

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


در 2 ساعت قبل، ali.s.p گفته است :

سلام

اون کدهایی که گذاشتین رو باید داخل سورس روبات بنویسیم یا جای دیگه؟


API_TOKEN = 'guardiran'

WEBHOOK_HOST = '<ip/host where the bot is running>'
WEBHOOK_PORT = 8443
WEBHOOK_LISTEN = '<ip/host where the bot is running>'

اینا رو میگم

بله باید تو سورس باشه!

توضیحات کامل هست 

دوباره یه نگاه به سورسی که قرار دادم بندازید

با همون ترتیب بنویسید رباتتونو

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


در ۱ ساعت قبل، Mr.Python گفته است :

بله باید تو سورس باشه!

توضیحات کامل هست 

دوباره یه نگاه به سورسی که قرار دادم بندازید

با همون ترتیب بنویسید رباتتونو

یه سوال دیگه اسم کشور اینا باید برای هاست باشه یا خودمون؟

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


در 2 ساعت قبل، ali.s.p گفته است :

یه سوال دیگه اسم کشور اینا باید برای هاست باشه یا خودمون؟

 

فرق نمیکنه .. یه چیز همینجوری هم میتونین بنویسین

تو جواب اون کد کشور و اسم سازمان و اینا میتونی نقطه بذاری ردش کنی

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


سلام

من هاست گرفتم ولی خب دستور sudo روش کار نمیکنه

فک میکنم ویندوز باشه

این دستور رو باید چجوری وارد کنم؟

sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT
لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


در 7 ساعت قبل، ali.s.p گفته است :

سلام

من هاست گرفتم ولی خب دستور sudo روش کار نمیکنه

فک میکنم ویندوز باشه

این دستور رو باید چجوری وارد کنم؟


sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT

نمیدونی هاستت ویندوزه یا لینوکس؟!
من تو پست نوشتم که برای سرور لینوکسی هستش نه برا ویندوز

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


  • 1 ماه بعد...

سلام یه سوال داشتم تو حالت عادی بدون وب هوک پیام ها با MessageLoop دریافت میشن وقتی وب هوک ست شد چطوری آپدیت ها رو دریافت کنم؟

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


در 2 ساعت قبل، senator788 گفته است :

سلام یه سوال داشتم تو حالت عادی بدون وب هوک پیام ها با MessageLoop دریافت میشن وقتی وب هوک ست شد چطوری آپدیت ها رو دریافت کنم؟

 

با سلام و احترام خدمت شما کاربر محترم  گاردایران

قبل از فعالیت در انجمن قوانین را مطالعه و همچنین در تاپیک ها اسپم قرار ندهید هر سوالی هم داشتید با توجه به تاپیک موردنظر در قسمت پرسش و پاسخ انجمن سوال فرمایید

موفق باشید

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


در در 25 آذر 1399 در 14:33، Rvlocker گفته است :

با سلام و احترام خدمت شما کاربر محترم  گاردایران

قبل از فعالیت در انجمن قوانین را مطالعه و همچنین در تاپیک ها اسپم قرار ندهید هر سوالی هم داشتید با توجه به تاپیک موردنظر در قسمت پرسش و پاسخ انجمن سوال فرمایید

موفق باشید

خب سوال منم درباره همین پست بود

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


با سلام . 

دوست عزیز باید سوالاتتون رو در بخش سوال و جواب بپرسید تا پاسخ داده شود . 

و قبلش به خوبی تاپیک مورد نظر رو مطالعه بفرمایید . 

موفق باشید . 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • ایجاد مورد جدید...