Yeni başlayanlar için Pyhton 3 ile basit Telegram botu yapma süreçlerini anlattık. Eğer aktif bir Telegram kullanıcısıysanız, daha önce bir chatbot ile görüşme yapmış olabilirsiniz. Özelleştirme noktasında inanılmaz yönleri ile Telegram botları birçok avantaj sunuyor. Görevleri otomatikleştirmek, sohbet gruplarında birtakım verileri anında herkesle paylaşmak gibi yönleriyle Telegram botları oldukça popüler.
Telegram’da bot geliştirmek, bu süreçlere çok hakim olmayanlar için göz korkutucu gelse de aslında öyle değil. Doğru bir planlama ve çalışma ile, Telegram botunuzu bir saatten kısa sürede kurabilir ve çalıştırabilirsiniz. İnternetten kedi fotoğraflarını getiren basit bir Telegram botunun nasıl oluşturulduğunu anlattık.
- Telegram ve Signal 2021’in ilk kazananları oldu
- Telegram grup ve kanal bulma [Nasıl Yapılır]
- Discord ve Telegram için en iyi müzik botları
Adım adım Pyhton 3 ile basit Telegram botu yapma: Nasıl başlayacaksınız?
Bu çalışmada dil olarak Pyhton 3, Pyhton-telegram-bot ile gerektirdiği kütüphaneleri ve TheCatAPI kullanacağız.
Telegram’daki her bot, uygulamanın mesajlaşma arayüzünü kullanmak için Bot API ile iletişim kurmasına yardımcı olan benzersiz bir token’a sahip. Telegram’ın geliştiriciler arasında en popüler özelliklerinden biri olan Bot API, mesajları arayüz olarak kullanmaya olanak tanıyor.
Token’ı almak için, isminden de anlaşışacağı gibi, kendi botlarınızı oluşturmanıza ve özelleştirmenize izin veren resmi bir bot olan @botfather ile bir konuşma başlatın. Telegram’da “@botfather” araması yaparak bu bota ulaşabilirsiniz.
Sohbete girdikten sonra /newbot komutunu yazarak botunuzu oluşturun. Botunuzun adını ve kullanıcı adını belirlemeye devam edin. Bu örnekte @passomebot ismi ile bir bot geliştireceğiniz. Bunu takiben botunuza özel bir token alacaksınız.
Pyhton 3 ile basit Telegram botu yapma konusunda ön hazırlıkları tamamladığımıza göre, heyecan verici asıl kısma adım atalım.
Kitaplıkları yükleyin
Windows kullanıyorsanız, komut istemini açın ve aşağıdaki komutları yazın:
- pip install python-telegram-bot
- pip install requests
MacOS ya da Linux kullanıyorsanız, bunun yerine terminalinizde aşağıdaki komutları kullanın. Ayrıca Linux’ta, sudo ayrıcalıklarına sahip bir kullanıcı olarak oturum açtığınızdan da emin olmalısınız.
- pip3 install python-telegram-bot
- pip3 install requests
Programı yazmak
Bilgisayarınızda yeni bir klasör oluşturun ve onu en sevdiğiniz düzenleyicide açın. Yeni bir dosya oluşturun ve main.py olarak adlandırın. Bu dosya, botunuzun kaynak kodunu içerecektir.
Şimdi, daha önce kurduğumuz kitaplıkları bazı yerleşik işlevleri ile birlikte içe aktaralım.
- from telegram.ext import Updater, CommandHandler
- import requests
- import re
Buradan itibaren programın akışı, TheCatAPI’ye erişmek, rastgele bir görüntünün URL’sini almak ve bu görüntüyü kullancının sohbetine göndermektir.
İstekler modülü kullanılarak yapılabilen fotoğraf URL’sini almak için bir işlevle başlayalım. Bu işlevde, TheCatAPI tarafından sağlanan rastgele bir dosyanın JSON verilerini yüklüyoruz ve daha sonra kullanmak üzere URL’sini çıkarıyoruz. JSON nesnesinin formatına bakmak için tarayıcınızda https://api.thecatapi.com/v1/images/search adresine gidin. Aşağıdakine benzer bir içerik fark edeceksiniz:
[{“breeds”:[],”id”:”a8c”,”url”:”url.jpg”,”width”:800,”height”:533}]
JSON nesnesinin bir sözlüğü tutan dizi olduğuna dikkat edin. Bu sözlük, “url” anahtarına sahip URL’i içerir. URL’yi çıkarmak için bir dizinin ilk öğesine ve ardından ilgili anahtara başvurmanız gerekir.
def getUrl():
#obtain : görüntü ayrıntılarıyla bir json nesnesi
#extract : json nesnesinden bir fotoğraf url’s
contents = requests.get(‘https://api.thecatapi.com/v1/images/search’)
url = contents[0][‘url’]
return url
Ardından, bu fotoğrafı bir kullanıcının sohbetine göndermemiz gerekiyor. Bunun için bir fotoğraf URL’sine ve kullanıcının sohbetinin benzersiz adresine ihtiyacımız var. Bunu yapmak için bir wrapper işlevi oluşturalım. İlk önce getUrl() adını veriyoruz. Rastgele bir görüntünün URL’sini alma işlevi — bu URL, programın işlevi her yenilendiğinde değişir.
Bunu daha sonra, alıcının mesajlar için botun hedef konumunu tanımlayan ve URL’yi Bot API’nin dahili send_photo() işlevi aracılığıyla ayrıştıran sohbet kimliğinin alınması izler.
def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
Bot API’nin çeşitli dahili işlevleri ve nasıl çalıştıkları hakkında daha fazla bilgi edinmek için, bu çalışmanın ardından Telegram’ın resmi dökümanlarına göz atabilirsiniz.
Son olarak, botun genel çalışmasını kontrol eden bir işlev oluşturalım. Geleneksel olarak main () biçiminde adlandırılan bu işlev, çalışmanın en başında elde ettiğimiz belirteci kullanarak Bot API’ye bir HTTP isteği gönderdiğimiz ve ardından botun kullanıcı etkileşiminin nasıl olacağını tanımladığımız yerdir. Bunun kadar basit bir durumda, bu aslında botu başlatmak ve kullanıcı tarafından istendiğinde sendImage () işlevini çağırmak anlamına gelir.
def main():
updater = Updater(“1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c”)
#call sendImage() kullanıcılar Telegram’da bir komut yazdığında
chat
updater.dispatcher.add_handler(CommandHandler(‘meow’,sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == ‘__main__’:
main()
Son program kodları ise şöyle görünmelidir:
from telegram.ext import Updater, CommandHandler
import requests
import re
def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get(‘https://api.thecatapi.com/v1/images/search’)
url = contents[0][‘url’]
return url
def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
def main():
updater = Updater(“1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c”)
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler(‘meow’,sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == ‘__main__’:
main()
Kendi Telegram botunuzu yarattınız!
Pyhton 3 ile basit Telegram botu yapma adımları işte bu kadar pratik. Kullanıcılar istediğinde, internetin en sevimli kedilerini gönderen açık kaynaklı bir Telegram botu yaptınız. Programı çalıştırmayı deneyin ve etkinleştirmek için sohbet ekranında /meow yazın.
Bu bot, sınırlı işlevselliğe sahip olsa da, Telegram’ın bot ekosistemi son derece güçlü. Botunuzun işlevselliğini geliştirmek için istediğiniz sayıda karmaşık alt program ve özellik ekleyebilirsiniz. Yıllat içinde birçok geliştiricinin katkıda bulunduğu Telegram botları, birçok açıdan oldukça kullanışlı yapılar.
Telegram botununun hosting ihtiyacı
Botunuz hazır ve çalışır durumda olduğuna göre bilgisayarınızda main.py’yi kapatmayı deneyin ve Telegram uygulamasında botu kullanın. Meow komutuna bir yanıt geliyor mu? Maalesef…
Telegram botları konusunda yeni başlayan biriyseniz, çalışan bir bot oluşturduğunuzda PC’nizdeki main.py’nin neden çalışmadığı konusunda kafanız karışabilir. Bunun nedeni programın, kullanılan API’lere HTTP istekleri göndermek için, bilgisayarınızı yerel bir sunucu olarak kullanmasıdır.
Bu nedenle uygulamayı her kullanmak istediğinizde programı çalıştırmanız gerektiği gerçeğiyle karşılaşacaksınız ancak bu çok kullanışlı değildir. Bu sorunu çözmek için botun, cihazınıza olan bağımlılığını kaldırmanız gerekiyor.
Bunu yapmanın yollarından biri kendi web sunucunuzu kurmak ve programı çalıştırmak için kullnmak üzere, Raspberry Pi gibi düşük maliyetli bir PCB kullanmaktır. PCB’ler önemli ölçüde daha düşük enerji ayak izine sahip olma eğiliminde olduğundan, tüm gün boyunca PC çalıştırmaya nazaran çok daha uygun maliyetlidir ve aynı avantajlar sunar.
Alternatif olarak programınızı buluta da dağıtabilirsiniz. Heroku, AWS, Google Cloud ya da Microsoft Azure gibi web barındırma platformlarına giderek ihtiyacınıza en uygun aboneliği seçebilirsiniz. Ücretsiz bir deneme veya bonelik seçmenizi ve programınızın ölçeğini ve kapsamını artırdıkça yükseltmenizi öneririz. İşte Phytonh 3 ile Telegram botu yapma işlemi bu kadar…