Herkese merhaba, Temel bir node.js bilgisi olan ve öğrenmeye hevesli olan bireyler için sıfırdan Telegram botu yapmayı anlatacağım. Çoğu yerlerde bot yapımı altında githubdan example'ları copy paste yaptıklarına şahit oldum. Bu yüzden çoğu konularda hep botun mesaj atmasından sonra konu bitiyordu. Peki o komutlar ne demekti? Ne yani biz Telegram botundan sadece mesaj mı atabiliyorduk? İşte bu soruların akkıllardan gitmesi ve bir nebze de olsa tr kaynak olması için bu konuyu yazmaya başladım. Takıldığım yerlerde, dilim sürçülisan ettiyse şimdiden affola. Eğer eklemek istediğiniz bir konu varsa mesajlarda belirtebilirsiniz. 1) Bir Telegrm aracılığı ile bot oluşturulam: - Telegramdan bot oluşturabilmek içinöncelikle Telegram uygulamasından BotFather'a gidiyoruz. - Başlat butonuna basarak botu başlatıyoruz. - '/newbot' yazısına tıklayıp yeni bir bot oluşturmak istediğimizi belirtiyoruz - Bize ilk başta botun isminin ne olacağını soruyor. Ben "Darga Altay" yazdım. Siz kendi bot isminizi belirtebilirsiniz. - İkinci olarak botun kullanıcı adının ne olacağını soruyor. Ben "darga_bot" kullanıcı adını veriyorum. - Önemli: kullanıcı adı belirtirken sonun "bot" kelimesi ile bitmesi gerekiyor. - Bu adımları yaptıktan sonra size en son botun oluştuğu hakkında bilgilendirme mesajı atacak. bu mesajdaki HTTP API kodunu saklayın. Bu bizim bot yaparken iletişim kurmamızı sağlayacak. 2) Telegram bot için Node.js Kütüphanesi Kuralım - Öncelikle bilgisayarınızda Node.js kurulu olması gerekiyor. - Kuracağımız kütüphane "node-telegram-bot-api" - Öncelikle "telegramBot" şeklinde bir klasör oluşturalım masa üstümüze.(İsmi kendiniz belirleyebilirsiniz) - Klasörün içine girdikten sonra adres çubuğuna "cmd" yazıp komut satırını açın veya cmdyi başlat menüsünden açıp oluşturduğunuz klasörün içine girin. - Komut satırına "npm i node-telegram-bot-api" kodu yazıp enter tuşuna basın. Bu sayede gerekli kütüphane klasörümüze eklenmiş olacak. - Klasöre yeni bir metin belgesi ekleyip ismini "bot" uzantısını ".js" yapıyoruz. 3) İşlemimizin %50 bitti. Şimdi geriye kaldı %50'si. Artık kod varkti. 4) Oluşturmuş olduğumuz "bot.js" dosyasını açıyoruz. - Bizim bot ile haberleşiğ mesaj göndermemiz için 4 satırlık bir kod yeterli ilk başta.(boşlukları ve yorum satırlarını görmezden gelirsek) ![]() - İlk 3 satırı açıkladım, şimdi 4. satırı açıklayayım. - bot.on diyerek botumuzu başlatıyoruz. Bu fonksiyona iki parametre verdik: 1) Bizimle hangi aşamada irtibat kuracağı: "message" diyerek herhangi bir mesaj yazdığımız zaman bize cevap ver demiş oluyoruz 2) callback fonksiyon: Bota yazılan mesajlar ve yazan kişi hakkındaki bilgileri msg değişkenine depoluyoruz. - bu fonksiyonun içine "bot.sendMessage" diyerek botun bir mesaj göndereceğini belirtiyoruz. Bu fonksiyona ise iki parametre verdik: 1) callback fonksiyonun döndürdüğü değerden botla irtibata geçen kişinin chat idsi 2) Hangi mesajı göndereceğimiz. Ben burada selam mesajını göndertiyorum.
- Botun çalışması için "node bot.js" şeklinde başlatmanız gerekmekte. Artık bot ile irtibat kurup nasıl mesaj atabileceğimizi öğrendik. Şimdi ise bir üst levele geçip bize butonlu cevap vermesini sağlayalım: 1) "bot.sendMessage" fonksiyona gelişmiş mesaj atabilmek için boş bir obje parantezi açıyoruz. ve içine "reply_markup" objesini ekliyoruz. 2) Bu obje içine "inline_keyboard" parametresini alıyor. Bu parametre liste veri tipi tutuyor. Yani her bir liste bir butonu temsil etmekte. - Bu listelerin içine bir obje parantezi açıp iki değer giriyoruz: text,callback_data. - text: Buton üzerinde gözükecek yazı - callback_data: butona tıkladıktan sonra hangi buton olduğunu yakalamamızı anlamamız için döndüreceği değer. - Eğer bir satırda tek buton göstermek istiyorsanız her listeye bir opbje, iki buton göstermek istiyorsanız liste içine iki obje açmanız gerekiyor.
- Artık butonlarımız hazır. İsterseniz bota bir mesaj atın ve size nasıl cevap verdiğine bakın. - Şimdi ise callback fonksiyondan yararlanıp hangi butona tıkladığını öğreneceğiz ve ona göre cevap yazmasını isteyeceğiz. Bunun için ben bir tane espri ve bir tane fıkra buldum. İkisi de kısa. Şimdilik sadece bir değer döndürecek. İleride liste yapıp random attırabiliriz veya siz kendiniz deneyebilirsiniz. - Bir butona basıldıktan sonra cevap vermesini istediğimiz için 'bot.on("message"...' yerine 'bot.on("callback_query"...' kullanacağız. - Seçtiğimiz butonun değeri bize "cbq.data" ile gelecek. Tabi botumuzun hangi chate mesaj atacağını söylememiz için chat idside lazım olacak. Bunun için "cbq.message.chat.id" bize chat idsini döndürecek. - Artık her şey tamam geriye sadece koşul eklemek kalıyor.
Basit bir fıkra anlatan veya espri yapan bir bot kodladık. Full Kod:
İkinci bölüm için sağlıcakla kalın, kod yazın. Spoiler,mesajı görmek için tıklayın.< Bu mesaj bu kişi tarafından değiştirildi dargaaltay -- 17 Şubat 2025; 3:35:0 > |
Bildirim