🤖
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ı
1
{
2
"ok": true,
3
"result": [
4
{
5
"update_id": 0,
6
"message": {
7
"message_id": 0,
8
"from": {
9
"id": 0,
10
"is_bot": false,
11
"first_name": "",
12
"last_name": "",
13
"language_code": ""
14
},
15
"chat": {
16
"id": 0,
17
"first_name": "",
18
"last_name": "",
19
"type": ""
20
},
21
"date": 0,
22
"text": ""
23
}
24
}
25
]
26
}
Copied!

📩 Bot ile Mesaj Gönderme

1
import requests
2
3
def telegram_bot_sendtext(bot_message):
4
5
bot_token = "1306224394:AAFUBwGCciNOiOQQQz0j9YNb5OniwEPfsHg"
6
bot_chatID = '431846525'
7
send_text = 'https://api.telegram.org/bot' + bot_token \
8
+ '/sendMessage?chat_id=' + bot_chatID + '&parse_mode=Markdown&text=' \
9
+ bot_message
10
11
response = requests.get(send_text)
12
13
return response.json()
14
15
16
test = telegram_bot_sendtext("Testing Telegram bot")
17
print(test)
Copied!

📦 Hazır Paketler ile Telegram Yönetimi

1
import logging
2
3
from telegram.ext import CommandHandler, Filters, MessageHandler, Updater
4
5
BOT_TOKEN = "Token değerini buraya atayın"
6
7
# Enable logging
8
logging.basicConfig(
9
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
10
level=logging.INFO)
11
logger = logging.getLogger(__name__)
12
13
14
def start(update, context):
15
"""Send a message when the command /start is issued."""
16
update.message.reply_text('Hi!')
17
18
19
def help(update, context):
20
"""Send a message when the command /help is issued."""
21
update.message.reply_text('Help!')
22
23
24
def echo(update, context):
25
"""Echo the user message."""
26
# update.message.text
27
update.message.reply_text("/mekan_ekle ile mekan ekleyin")
28
29
30
def error(update, context):
31
"""Log Errors caused by Updates."""
32
logger.warning('Update "%s" caused error "%s"', update, context.error)
33
34
35
def main():
36
"""Start the bot."""
37
# Create the Updater and pass it your bot's token.
38
# Make sure to set use_context=True to use the new context based callbacks
39
# Post version 12 this will no longer be necessary
40
updater = Updater(BOT_TOKEN, use_context=True)
41
42
# Get the dispatcher to register handlers
43
dp = updater.dispatcher
44
45
# on different commands - answer in Telegram
46
dp.add_handler(CommandHandler("start", start))
47
dp.add_handler(CommandHandler("help", help))
48
49
# on noncommand i.e message - echo the message on Telegram
50
dp.add_handler(MessageHandler(Filters.text, echo))
51
52
# log all errors
53
dp.add_error_handler(error)
54
55
# Start the Bot
56
updater.start_polling()
57
58
# Run the bot until you press Ctrl-C or the process receives SIGINT,
59
# SIGTERM or SIGABRT. This should be used most of the time, since
60
# start_polling() is non-blocking and will stop the bot gracefully.
61
updater.idle()
62
63
64
if __name__ == '__main__':
65
main()
66
Copied!
Last modified 2mo ago