🤖Telegram Botu Oluşturma

Python ile telegram botu oluşturma ve otomatik olarak mesaj cevaplama

👀 Hızlı Bakış

  • Whatapp alternatifi mesajlaşma uygulamasıdır, grup üye sayısı sınırsızdır

  • Açık kaynak bir uygulama olduğundan yazılımlar ile erişebilen bir API hizmeti sunar

  • API üzerinden kişisel botlar oluşturabilir ve kendi iş akışınızı geliştirebilirsiniz

👨‍💻 Programlama işleri ile ilgilenenler için telegram ideal bir chat uygulamasıdır.

🤖 Bot Oluşturma

  • Telegram üzerinden BotFather kanalına mesaj atmalısın

  • /newbot komutu ile bot oluşturma isteğinde bulun

  • İlk önce botun için isim oluştur, bu isim türkçe karakter içerebilir ve uzun olabilir

  • Ardından botun için eşsiz bir kullanıcı adı belirlemen gerekir

  • Bot oluşturulduktan sonra sana token bilgisi verilecek bu bilgiyi kopyalamalı ve saklamalısın

  • Botuna erişmek için t.me/<botkullanıcı_adı> bağlantısına bakmalısın

🆔 Bot için Chat ID Alma

  • Chat ID, botunuza her mesaj atan kullanıcının id bilgisidir

  • Chat ID ile istediğiniz kullanıcıya mesaj gönderebilirsiniz

  • Chat ID değerini almak için .https://api.telegram.org/botXXX:YYYY/getUpdates bağlantısındaki

    • XXX:YYYY alanına daha önceden kopyaladığınız token bilginizi yapıştırın

    • Örneğin: https://api.telegram.org/bot12345:TOKEN_DEVAMI/getUpdates

  • Döndürülen JSON metninde id: alanı içerisinde Chat ID bilgisini alabilirsiniz

Örnek JSON çıktısı
{
    "ok": true,
    "result": [
        {
            "update_id": 0,
            "message": {
                "message_id": 0,
                "from": {
                    "id": 0,
                    "is_bot": false,
                    "first_name": "",
                    "last_name": "",
                    "language_code": ""
                },
                "chat": {
                    "id": 0,
                    "first_name": "",
                    "last_name": "",
                    "type": ""
                },
                "date": 0,
                "text": ""
            }
        }
    ]
}

📩 Bot ile Mesaj Gönderme

import requests

def telegram_bot_sendtext(bot_message):

   bot_token = "1306224394:AAFUBwGCciNOiOQQQz0j9YNb5OniwEPfsHg"
   bot_chatID = '431846525'
   send_text = 'https://api.telegram.org/bot' + bot_token \
      + '/sendMessage?chat_id=' + bot_chatID + '&parse_mode=Markdown&text=' \
      + bot_message

   response = requests.get(send_text)

   return response.json()


test = telegram_bot_sendtext("Testing Telegram bot")
print(test)

📦 Hazır Paketler ile Telegram Yönetimi

import logging

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

BOT_TOKEN = "Token değerini buraya atayın"

# Enable logging
logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', 
    level=logging.INFO)
logger = logging.getLogger(__name__)


def start(update, context):
    """Send a message when the command /start is issued."""
    update.message.reply_text('Hi!')


def help(update, context):
    """Send a message when the command /help is issued."""
    update.message.reply_text('Help!')


def echo(update, context):
    """Echo the user message."""
    # update.message.text
    update.message.reply_text("/mekan_ekle ile mekan ekleyin")


def error(update, context):
    """Log Errors caused by Updates."""
    logger.warning('Update "%s" caused error "%s"', update, context.error)


def main():
    """Start the bot."""
    # Create the Updater and pass it your bot's token.
    # Make sure to set use_context=True to use the new context based callbacks
    # Post version 12 this will no longer be necessary
    updater = Updater(BOT_TOKEN, use_context=True)

    # Get the dispatcher to register handlers
    dp = updater.dispatcher

    # on different commands - answer in Telegram
    dp.add_handler(CommandHandler("start", start))
    dp.add_handler(CommandHandler("help", help))

    # on noncommand i.e message - echo the message on Telegram
    dp.add_handler(MessageHandler(Filters.text, echo))

    # log all errors
    dp.add_error_handler(error)

    # Start the Bot
    updater.start_polling()

    # Run the bot until you press Ctrl-C or the process receives SIGINT,
    # SIGTERM or SIGABRT. This should be used most of the time, since
    # start_polling() is non-blocking and will stop the bot gracefully.
    updater.idle()


if __name__ == '__main__':
    main()

Last updated

© 2024 ~ Yunus Emre Ak ~ yEmreAk