احمد
احمد
خواندن ۳ دقیقه·۳ سال پیش

ساخت ربات تلگرام با زبان پایتون- قسمت ۱

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

توی نوشتن کدها ترجیح دادم از IDE آنلاین رپلیت (replit.com) استفاده کنم. مزیتش اینکه شما می‌تونید با این IDE کدهایی که نوشتم رو ببینید و بررسی کنید.

اتصال پایتون به تلگرام

برای اتصال پایتون به تلگرام و برنامه نویسی بات، کتابخونه های زیادی هست که من اینجا از کتابخونۀ pyTelegramBotAPI استفاده می کنم چون تا جایی که دیدم خیلی ساده تر و تمیز تر از بقیه کتابخونه هاست.

خیلی خب همونطور که می دونید این کتابخونه external است؛ پس باید اون رو از طریق PIP نصب کنیم؛ برای این کار مثل بقیه کتابخونه های external این دستور رو وارد می کنیم:

pip install pyTelegramBotAPI

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

خیلی خب بعد از نصب در قدم بعدی نیاز داریم environment variable تنظیم کنیم. با فایل env. میشه اینکار رو انجام داد؛ برای این کار یک فایل env. بسازید و این کد رو توش قرار بدید:

API_KEY = 1934540019:AAGz0VbXA8H5uBoLFsxcJftKRskK7-KWl3A

توجه داشته باشید که در مقدار ورودی API_KEY باید توکن و یا API خودتون رو وارد کنید که ما در قسمت قبلی این رو از botfahter گرفته بودیم.

اما راستش رو بخواید من نتونستم environment variable رو با فایل env. تنظیم کنم؛ شاید برای شما هم این اتفاق بیفته. برای حل این مشکل کافیه که اگر با پایچارم هستید تنظیم environment variable در پایچارم رو ببینید.

بعدش در فایل پایتنتون کتابخونه os رو import کنید و environment variable رو دریافت کنید. به این صورت:

import os
API_KEY = os.getenv('API_KEY')

حالا که environment variable رو تنظیم کردیم، کتابخونه رو import می کنیم:

import telebot

در قدم بعدی یک متغیر به نام bot تعریف می کنیم تا بتونیم از API برای برنامه نویسی بات استفاده کنیم. خیلی ساده کد اینجوری میشه:

bot = telebot.TeleBot(API_KEY)

نکته: به حروف بزرگ و کوچک دقت کنید.

حالا ما می خوایم وقتی کاربر کامند مثل hello/ یا hi/ یا hey/ وارد کرد، این بات ما پیامش رو reply کنه و بهش پیام بده؛ برای این کار ابتدا باید کامندمون رو تعریف کنیم؛ در قدم بعدی یک تابع می سازیم به نام hello و یک پارامتر به نام message به اون میدیم. توی تابع می خوایم کدی بنویسیم که بات پیام کاربر رو ریپلای کنه و پیام بده که اینجا از reply_to استفاده می کنیم و مقدار بهش میدیم، message و متن پیام. کل کدها اینجوری میشن:

@bot.message_handler(commands=['hello', 'hi' , 'hey']) def hello(message): bot.reply_to(message, 'hello, how are you?')

با کد بالا بات پیام کاربر رو reply کرد و پیام داد؛ اما اگه نخوایم بات این کارو انجام بده و در واقع بات فقط پیام بده، بجای reply_to از send_message استفاده می کنیم و یک chat id مشخص می کنیم که به این صورت میشه:

bot.send_message(message.chat.id, 'hello, how are you?')

در آخر برای اینکه کد اجرا بشه از این دستور استفاده می کنیم:

bot.polling()

برای این قسمت فکر می کنم همین قدر کافی باشه. در قسمت های آینده با دستورهای بیشتر، متنوع تر و هیجان انگیز تر آشنا میشیم. تمام کدهایی که نوشتیم در replit هست که میتونید ببینید:

https://replit.com/@CapitaineHaddock/BOT#main.py

جای دوری نرید؛ تا پست بعدی.

پایتونتلگرامبات تلگراماتصال پایتون به تلگرامبات تلگرام با پایتون
یک پایتونیست؛ علاقه‌مند به زبان فرانسه
شاید از این پست‌ها خوشتان بیاید