background

سەرەتایەک بۆ دروستکردنی بۆتی تەلەگرام بە پایثۆن

هاوپۆل: بەرنامەدارشتن  ژ.بابەت : 4273  بەروار : كانونی دووه‌م 31, 2021
bot, python, telegram
QR Code For:  سەرەتایەک بۆ دروستکردنی بۆتی تەلەگرام بە پایثۆن

تەلەگرام پەیامبەرێکی بەناوبانگە، زیاتر لە 500 ملیۆن بەکارهێنەری چالاکی مانگانەی هەیە لە زۆر وڵات و نەتەوەوە. بۆتەکانی تەلەگرام هەژماری تایبەتن کە پێویستییان بە ژمارەی تەلەفون نییە بۆ دروستکردن و لە رێی Bot APIـی تەلەگرامەوە کە ئەی پی ئایێکی HTTPـە بەکاردێن.

بۆ ئەوەی بتوانین بۆتی پێشکەوتوو و سوودبەخش دروستبکەین، پێویستمان بە زمانێکی بەرنامەسازییە. بۆ هەر زمانێکیش کۆمەڵە کەرەستە و کتێبخانەیەک هەن کە بەکارهێنانی Bot API ئاسانتردەکەن. پایثۆن یەکێکە لە زمانە بەناوبانگەکان بۆ دروستکردنی بۆتی تەلەگرام و بەناوبانگترین کتێبخانەش python-telegram-botـە.

لەم وتارە، باس لە دروستکردنی بۆتێکی سادە دەکەین بە بەکارهێنانی ئەو کتێبخانەیە.

پێداویستییەکان

بۆ ئەوەی بتوانیت لەگەڵ ئەم وتارە برۆیت بێ ئەوەی هیچ کێشەیەکت بۆ دروستبێت دەبێت دڵنیابیت لەوەی کە ئەم پێداویستییانەی خوارەوەت هەیە:

  1. وەشانی 3.6 یان نوێتری پایثۆن.
  2. نوێترین وەشانی pip.
  3. دەستکاریکەرێکی کۆد (پێشنیاز: VS Code).

ئەگەر لەسەر ویندۆزیت، دەتوانیت پایثۆن و pip هەردووکیان لێرە دابگریت. ئەگەر لەسەر لینوکسیت، پێویست ناکات پایثۆن دابگریت چونکە لەسەر زۆر لە دابەشکراوەکان هەیە بەڵام دڵنیابە لەوەی کە pipـت هەیە.

داگرتن و دامەزراندنی pip لەسەر دابەشکراوەکانی دێبیان:

sudo apt update && sudo apt upgrade -y && sudo apt install python3-pip -y

دڵنیابوونەوە لەوەی کە نوێترین وەشانە:

python(3) -m pip install -U pip

ئەگەر ویستت VS Code بەکاربێنیت، سەردانی ئێرە بکە بۆ داگرتنی.

دروستکردنی بۆتێک و دەستکەوتنی تۆکنەکەی بۆ بەکارهێنانی Bot API

1. لە بەشی گەرانی تەلەگرام، بگەرێ بۆ: BotFather و ئەو ئەنجامە هەڵبژێرە کە هێما ڕاستەکەی پێوەیە.

BotFather

2. START بکە.

/newbot

3. /newbot بنێرە.

4. ناوێک بنێرە بۆ بۆتەکەت.

ناردنی ناوی بەکارهێنەری بۆتەکەت

5. ناوی بەکارهێنەرێک بنێرە بۆ بۆتەکەت.

هەڵگرتنی تۆکنی بۆتەکەت

6. تۆکنی بۆتەکەت هەڵگرە بۆ ئەوەی دواتر بۆ بەکارهێنانی Bot API بەکاریبێنیت.

دامەزراندنی پێداویستییەکانی پیپ

python(3) -m pip install -U python-telegram-bot

هاوکاریکەری پایثۆن بۆ VS Code (ئارەزوومەندانە)

VS Code Python Extenion

python-telegram-bot

کتێبخانەیەکی پایثۆنە، چوارچێوەیەکی Bot APIـە بە پایثۆن، بەکارهێنانی Bot APIـی زۆر سادەکردووە. دەتوانیت بە هەردوو ڕێگای getUpdates و Webhook بۆتی پێدروستبکەیت.

ڕێگای getUpdates یەک یان چەند کارکەرێک دروستدەکات کە لە پشتەوە هەموو ساتێک داوایەک دەنێرێت بۆ راژەی تەلەگرام بۆ بینینی هەموو ئەو شتانەی کە بۆ بۆتەکە هاتووە. ڕێگای Webhook وەک ئەوە وایە تۆ ڕاژەیەکت هەبێت و هەر کاتێک کە شتێک هات بۆ بۆتەکە تەلەگرام بۆ بە راژەکەی تۆ بڵێت. ڕێگای باوتر getUpdatesـە، سەرئێشەی کەمترە و لەم وتارە باسی دەکەین.

یەکەم بۆتت

فایلێکی پایثۆن دروستبکە و بیکەوە بە دەستکاریکەرەکەت، پێش هەموو شتێک مۆدیوڵە پێویستەکانی ناو python-telegram-bot هاوردەبکە:

from telegram.ext import Updater, CommandHandler, MessageHandler, Filters

دوای ئەوە پێویستت بە چەند فەرمانێکە بۆ ئەوەی بانگبکرێن کاتێک پەیامێکی دیاریکراو بۆ بۆتەکەت دێت، ئەم فەرمانانە پێیان دەوترێت Callback Handler، دەبێت دوو پێدراو وەربگرن، ئەوانیش update کە نموونەیەکی telegram.Updateـە و context کە نموونەیەکی telegram.ext.CallbackContextـە.

ئەم فەرمانەی خوارەوە، وەڵامی بەکارهێنەرەکە بە «تۆ منت دەستپێکرد!» دەداتەوە:

def start(update, context):
    update.message.reply_text("تۆ منت دەستپێکرد!")

ئەمەشیان ئەو نووسینەی کە بەکارهێنەرەکە ناردوویەتی دووبارە دەکاتەوە:

def echo(update, context):
    update.message.reply_text(f"تۆ وتت: {update.message.text}")

دواتر دەبێت ئەم Handler Callbackـانە بخەیتە کار، بۆ ئەوەش Updaterـێک دروستبکە و یەکەم پێدراو بکە بە تۆکنی بۆتەکەت (ئەوەی لە BotFather دەستتکەوتبوو):

updater = Updater("TOKEN")

دواتر لە رێی Dispatcherـی Updaterـەکەوە:

updater.dispatcher.add_handler(CommandHandler("start", start))
updater.dispatcher.add_handler(MessageHandler(Filters.text & ~ Filters.command, echo))

ئەوەی یەکەم کە زیادکرا، هاندلەری فەرمانە. پێدراوی یەکەم ئەو فەرمانەیە کە بۆ بۆتەکە دێت، لەوێ startـە. وە پێدراوی دووەم فەرمانی Callbackـەکەیە، واتە ئەو فەرمانەی کە بانگدەکرێت کاتێک فەرمانی ستارت دەنێردرێت بۆ بۆتەکە.
و دووەم، هاندلەری پەیامە. پێدراوی یەکەم کۆمەڵە پاڵاوتنێکە، لەوێ وتوومانە دەبێت پەیامەکە نووسین بێت وە هەروەها فەرمان نەبێت. نیشانەی & وەک and وایە لەوێدا وە نیشانەی ~ وەک not وایە. تەنها ئەوەیە کە ئەمان bitwiseـن. پێدراوی دووەمیش بە هەمان شێوەی هاندلەری فەرمانەکەیە.

دوای ئەنجامدانی هەموو ئەوانەی سەرەوە دەبێت Updaterـەکە دەستپێبکەین و وا بکەین بەرنامەکە block بکات (دانەخرێتەوە) تاوەکو لەکاردایە:

updater.start_polling()
updater.idle()

تەواو! هەموو شتێک ئامادەیە! فایلەکە دەستپێبکە، تەلەگرام بکەوە، لە بەشی گەران بۆ بۆتەکەت بگەرێ و دەستیپێبکە.
کە بۆتەکەت دەستپێکرد، دەبێت بە «تۆ منت دەستپێکرد!» وەڵامت بداتەوە و کە نووسینێکت بۆ نارد بڵێت «تۆ وتت:‌ نووسینەکەت».

تەواوی کۆدەکە:

دەرئەنجام

  • تێگەیشتن لە رێگاکانی وەرگرتنی ئەپدەیت.
  • تێگەیشتن لە Updater و Handlerـی python-telegram-bot.
  • دروستکردنی یەکەم بۆتی تەلەگرامت.

زیاتر

هەوڵبدە هاندلەری تر زیادبکە و مۆدیولی دیکەی پایثۆن بەکاربێنە بۆ ئەوەی بۆتەکەت بە کەڵک بێت.
کەتەلۆگی python-telegram-bot لێرەیە.

ڕۆژ

ژمارەی بابەتەکان: 3

  • بۆچوونەکان

    نووسینی وەڵام

    پۆستی ئەلیکترۆنییەکەت بڵاوناکرێتەوە. خانە پێویستەکان دەستنیشانکراون بە *