راه اندازی بات تلگرام با استفاده از فلاسک Flask و پایتون در سی پنل cPanel

در ادامه آموزشی که برای راه اندازی جنگو Django با سی پنل cPanel با استفاده از mod_passenger گذاشته بودیم امروز آموزش راه اندازی یک بات ساده تلگرام با استفاده از فریم ورک فلسک Flask را خواهیم داشت .

ابتدا از Lets Encrypt موجود در cPanel یک ssl رایگان بر روی دامنه مورد نظر نصب کرده و سپس از Python selector اقدام به نصب فریم ورک و ماژول تلگرام می کنیم :

telegram flask bot mod passenger

سپس فایل web.py حاوی کد های فلاسک برگرفته از مثال نمونه را ایجاد میکنیم :

from flask import Flask, request
import telegram
# CONFIG
TOKEN = 'YOUR_BOT_API'
HOST = 'YOURDOMAIN.COM'

global bot
bot = telegram.Bot(TOKEN)
app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello World! :)'

@app.route('/' + TOKEN, methods=['POST'])
def webhook():
    try:
       update = telegram.Update.de_json(request.get_json(force=True),bot)
       bot.sendMessage(chat_id=update.message.chat.id, text='Hello, there'.encode('utf-8'))
    except Exception as e:
       return str(e)
   return 'OK'

@app.route('/set_webhook', methods=['GET', 'POST'])
def setWebhook():
    s = bot.setWebhook(webhook_url='https://%s/%s' % (HOST,TOKEN))
    if s:
       return "webhook setup ok"
    else:
       return "webhook setup failed"

اکنون لازم است با ایجاد فایل passenger_wsgi.py فایل web.py را به وب سرور برای اتصال معرفی کنیم :

from web import app as application

در نهایت پایتون را از کنترل پنل python selector رستارت می کنیم . اکنون با مراجعه به

https://yourdomain.com

باید hello world ! به درستی نمایش داده شود و با رفتن به آدرس

https://yourdomain.com/set_webhook

باید پیام webhook setup ok نمایش داده شود. همچنین با ارسال یک درخواست json تست به :

https://yourdomain.com/TOKEN

نباید خطایی نشان داده شود و باید پیام ok نمایش داده شود. این درخواست test را می توان با  کتابخانه requests پایتون فرستاد:

import requests
requests.post("https://yourdomain.com/TOKEN",json={'test':'test'}).content

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *