به نام دانای بر حق
مقدمه
با این که من خودم مخالف ۱۰۰٪ این تکنولوژی هایی هستم که هر روز زندگی بشر رو بیشتر به پوچی نزدیک می کنه ولی خب بد نیستش که از نظر فنی بیایم و به این موضوع نگاهی بندازیم همونجوری که میدونین تلگرام یه شبکه ای هستش شبیه وایبر منتهی با حذف یه سری محدودیت ها که وایبر داره محبوب تر شده و با داشتن ربات ها متمایز شده از سایر شبکات دیگر، ما در این آموزش در مورد نحوه راهندازی یک ربات صحبت می کنیم ما تک تک api ها رو معرفی نمیکنیم یک ربات رو تعریف می کنیم از ۰ تا ۱۰۰ اما تا حد زیادیش رو میگم بقیه با شما شاید هم یک آموزش تکمیلی در این مورد ارسال کردیم.
اگر شما به زبان جاواسکریپت تسلط بیشتری دارید پیشنهاد میکنم از این آموزش استفاده کنین.
پیش فرض ها
اول از همه شما باید به سیستم عامل خودتون تسلط داشته دارید ( من تو آموزش از لینوکس توزیع ubuntu استفاده می کنم و به شما هم همین os رو پیشنهاد می کنم.) .
دوم با زبان پایتون حداقل دست پا شکسته آشنایی داشته باشید.
سوم تسلط به یک زبان وب و نوشتن یک ربات برای پرسش و پاسخ ( ضروری نیست)
دانلود و نصب
ابتدا پایتون روی سیستمتون نصب کنین اگر لینوکسی هستید نصب شده است نگران نباشید البته نسخه ۲.x نه ۳
سپس python pip رو نصب کنید در اوبنتو با دستور زیر:
sudo apt-get install python-pip
سپس کتابخانه telegram bot رو با Pip نصب کنید به شکل زیر:
pip install python-telegram-bot --upgrade
سپس git را نصب کنید در Ubuntu به شکل زیر:
sudo apt-get install git
در نهایت میریم به پوشه مشخص مثل desktop بعد یه همزاد یا همون clone از ربات github میگیریم با دستور زیر:
git clone https://github.com/leandrotoledo/python-telegram-bot
بعد وارد پوشه همزاده شده می شویم:
cd python-telegram-bot
دو دستور زیر رو اجرا می کنیم برای آماده سازی کتابخانه:
make test make help
خب حالا آنچه نیاز بودش رو نصب کردیم .
نحوه ایجاد bot
برای ایجاد روبوت شما باید با botfather صحبت کنید برای این کار Telegram نسخه دسکتاپ رو دانلود کنید و واردش بشین و با کلیک روی این لینک میتونین تو تلگرامتون با بات فادر صحبت کنید
ضرورت صحبت با botfather این هستش که شما باید api مورد نیاز رو از این ربات خود تلگرام بگیرین:
برای ایجادش اول:
/newbot
رو بزنین اسم ربات رو از شما میخواد مثلا میزنیم: xmen
بعد نام کاربری برای ربات میخوادش که حتما باید به _bot ختم شود مثل: xmen_bot
خب حالا یه چیزی تو این مایه ها به شما میده در پاسخ میده که api شما هستش:
Use this token to access the HTTP API: ۱۲۵۹۴۲۳۹۰:AAEWWJ_gwxw11vw8o0qHwiNu7hjBNZLi9E4
خب تا ایجا درست پیش رفتین.
نحوه راهندازی bot
برای راهندازی از یه editor , IDE معروف python مثل spyder استفاده کنین خب وارد پوشه exmaples بشین و فایل زیر رو باز کنین:
roboed.py
محتوای داخل این هستش:
#!/usr/bin/env python # encoding: utf-8 '''Robô Ed Telegram Bot''' __author__ = 'leandrotoledodesouza@gmail.com' import telegram import requests def main(): bot = telegram.Bot('token') # Telegram Bot Authorization Token global LAST_UPDATE_ID LAST_UPDATE_ID = bot.getUpdates()[-1].update_id # Get lastest update while True: for update in bot.getUpdates(offset=LAST_UPDATE_ID): text = update.message.text chat_id = update.message.chat.id update_id = update.update_id if LAST_UPDATE_ID < update_id: # If newer than the initial # LAST_UPDATE_ID if text: roboed = ed(text) # Ask something to Robô Ed bot.sendMessage(chat_id=chat_id, text=roboed) LAST_UPDATE_ID = update_id def ed(text): url = 'http://www.ed.conpet.gov.br/mod_perl/bot_gateway.cgi?server=0.0.0.0%3A8085&charset_post=utf-8&charset=utf-8&pure=1&js=0&tst=1&msg=' + text data = requests.get(url).content return data.strip() if __name__ == '__main__': main()
خب به جای leandrotoledodesouza@gmail.com ایمیل خودتون رو بزنین ضروری نیست این حرکت
در خط زیر :
telegram.Bot('token')
token اون api دریافت شده رو بذارین ۱۰۰٪ ضروری هستش.
خب حالا به تابع ed مراجعه می کنیم:
در این تابع یه پرس و جو از آدرس اج وجق خودش میشه اما برای سرور خودنون عوض می کنیم که توضیح دقیق تر رو به عهده خودتون میذارم که برین سراغش سخت نیست.
حال من یه تغییر دیگه توش ایجاد می کنیم:
roboed = ed(text) # Ask something to Robô Ed bot.sendMessage(chat_id=chat_id, text=roboed) LAST_UPDATE_ID = update_id
به شکل زیر عوض می کنیم
roboed = ed(text) # Ask something to Robô Ed if (text == 'pic' ): bot.sendPhoto(chat_id,'https://pypi.python.org/static/images/python-logo.png','Thanks for watching'); else: bot.sendMessage(chat_id=chat_id, text=roboed) LAST_UPDATE_ID = update_id
خب معنی کد بالا اینه اگر pic رو فرستاد براش عکس میفرسته در غیر این صورت پاسخ پرس و جو رو ارسال میکند.
run کردن ربات
run کردن ربات توسط ترمینال در لینوکس و یا cmd در ویندوز وارد پوشه examples میشیم و دستور زیر رو مینویسیم:
python roboed.py
خب الان ربات ما به تلگرام وصل هستش و تا مادامی که ترمینال یا cmd باز هستش ربات ما توانایی پاسخگویی رو داره به مراجعه کننده.
برای پیدا کردن ربات همون زمان ساخت api بهتون آدرسش هم میدهد.
البته برای دائم الجرا شدنش باید اون روی یه سرور استارت آپ کنید.
به همین سختی و به همین خوشمزگی 😀 چون پایتون بود خوشمزه شد.
اگر مایل بودین میتونیم تکمیلی هم صحبت کنیم اینجا لینوکسه و دنیا دنیا اتفاق خوب 😀
دیدگاهتان را بنویسید لغو پاسخ