Salı, Ocak 20, 2026
Ana SayfaJsTelegram Bot Yapımı: Sıfırdan Başlayanlar İçin Rehberim

Telegram Bot Yapımı: Sıfırdan Başlayanlar İçin Rehberim

Telegram Bot Yapımı: Sıfırdan Başlayanlar İçin Rehberim

Selamlar arkadaşlar! Bugün sizlerle yıllar önce başladığım ve baya bir hata yaparak öğrendiğim Telegram bot yapımı maceramı paylaşmak istiyorum. İlk bot deneyimimi hatırlıyorum da, o zamanlar hiçbir şey bilmiyordum ama merak ediyordum işte. Denemekten zarar gelmez diye düşünüp başladım. Şimdi sizler için daha rahat anlayabileceğiniz ufak bir bot yaptım, adım adım anlatacağım.

İlk Adımlar ve Hazırlıklar

Öncelikle size şunu söyleyeyim, ben ilk başladığımda Node.js’in ne olduğunu bile bilmiyordum. Ama öğrendim işte, sizler de öğreneceksiniz. İhtiyacınız olan şeyler şunlar:

Node.js kurulu olması lazım bilgisayarınızda. Eğer yoksa nodejs.org’dan indirin, kurun. Korkmayın hiçbir şey olmaz bilgisayarınıza. Ben de ilk kurduğumda “acaba bir şey mi bozulur” diye düşünmüştüm, merak etmeyin.

Telegram’da @BotFather’a gidip bot oluşturmanız gerekiyor. Bu arkadaş Telegram’ın bot babası, tüm botlar ondan doğar. Ona /newbot yazıyorsunuz, size bot ismi soruyor, sonra kullanıcı adı soruyor. Bakın burada ilk hatamı anlatayım: Bot kullanıcı adının sonunda “bot” olması gerekiyormuş, ben saatlerce uğraştım neden kabul etmiyor diye. Mesela “benimharikabotum_bot” gibi bir şey yazmanız lazım.

Kodlamaya Başlıyoruz

Şimdi gelelim işin güzel kısmına. Bir klasör açın, terminal açın o klasörde ve şu komutu yazın:

npm init -y
npm install node-telegram-bot-api

Bakın şu kod ne işe yarar anlatayım: npm init -y projenizi başlatıyor, package.json dosyası oluşturuyor. İkinci komut ise Telegram bot kütüphanesini yüklüyor. Ben ilk zamanlar bunları anlamadan kopyala-yapıştır yapıyordum, sonra öğrendim ne işe yaradıklarını.

Şimdi bot.js diye bir dosya oluşturun. İçine şunları yazalım:

const TelegramBot = require('node-telegram-bot-api');

// BotFather'dan aldığınız token'ı buraya yapıştırın
const token = 'BURAYA_BOT_TOKENINIZI_YAZIN';

// Bot'u başlatalım
const bot = new TelegramBot(token, {polling: true});

// İlk mesajımıza cevap verelim
bot.on('message', (msg) => {
  const chatId = msg.chat.id;
  const messageText = msg.text;
  
  console.log(`${msg.from.first_name} dedi ki: ${messageText}`);
  
  // Selam yazan herkese cevap verelim
  if(messageText && messageText.toLowerCase().includes('selam')) {
    bot.sendMessage(chatId, 'Aleyküm selam dostum! Nasılsın?');
  }
});

bot.onText(/\/start/, (msg) => {
  const chatId = msg.chat.id;
  const userName = msg.from.first_name;
  
  bot.sendMessage(chatId, `Hoş geldin ${userName}! Ben senin yardımcı botun. Bana selam yazabilirsin mesela.`);
});

Bakın burada size bir şey anlatayım. polling: true kısmı çok önemli. Bu bot’unuzun sürekli Telegram’ı kontrol etmesini sağlıyor. Ben bunu ilk zamanlar yazmamıştım, bot hiç cevap vermiyordu, saatlerce uğraştım neden çalışmıyor diye.

Biraz Daha Geliştirelim

Sizleri düşündüğüm için burada bir yazı yazdım, o yüzden biraz daha işlevsel hale getirelim botumuzu. Mesela hava durumu soran bir komut ekleyelim:

bot.onText(/\/hava (.+)/, async (msg, match) => {
  const chatId = msg.chat.id;
  const sehir = match[1];
  
  bot.sendMessage(chatId, `${sehir} için hava durumu bakıyorum, biraz bekle...`);
  
  // Normalde buraya API çağrısı yaparsınız
  // Ben basit bir örnek yapıyorum
  setTimeout(() => {
    bot.sendMessage(chatId, `${sehir} şu anda güneşli ve 25 derece! (Şaka şaka, gerçek hava durumu için API entegrasyonu yapmamız lazım)`);
  }, 2000);
});

Gördünüz mü? /hava Istanbul yazdığınızda size cevap veriyor. O (.+) kısmı regex, yani düzenli ifade. İstanbul yazsanız da, Ankara yazsanız da alıyor o kısmı.

Butonlar Ekleyelim

Şimdi size güzel bir şey göstereyim. Butonlu mesajlar:

bot.onText(/\/menu/, (msg) => {
  const chatId = msg.chat.id;
  
  const options = {
    reply_markup: {
      inline_keyboard: [
        [
          { text: ' Hava Durumu', callback_data: 'hava' },
          { text: ' Saat', callback_data: 'saat' }
        ],
        [
          { text: ' Zar At', callback_data: 'zar' }
        ]
      ]
    }
  };
  
  bot.sendMessage(chatId, 'Ne yapmak istersin?', options);
});

// Buton tıklamalarını yakalayalım
bot.on('callback_query', (callbackQuery) => {
  const message = callbackQuery.message;
  const data = callbackQuery.data;
  
  if(data === 'saat') {
    const saat = new Date().toLocaleTimeString('tr-TR');
    bot.sendMessage(message.chat.id, `Saat şu anda: ${saat}`);
  }
  
  if(data === 'zar') {
    const zar = Math.floor(Math.random() * 6) + 1;
    bot.sendMessage(message.chat.id, ` Zarın geldi: ${zar}`);
  }
  
  if(data === 'hava') {
    bot.sendMessage(message.chat.id, 'Hangi şehir için hava durumu istiyorsun? /hava şehir_adı yazabilirsin.');
  }
});

Hata Yapmaktan Korkmayın

Bakın size ilk zamanlarımdan hatalarımı anlatayım ki siz düşmeyin aynı hatalara:

Token’ı GitHub’a yüklemişim bir keresinde, bot’u ele geçirmişler. Hemen BotFather’dan yeni token aldım. Sizler .env dosyası kullanın, token’ı oraya koyun.

msg.text undefined olabiliyor bazen, çünkü fotoğraf veya sticker gönderince text olmuyor. O yüzden hep kontrol edin var mı diye.

Bot’u çalıştırıp kapatıp tekrar çalıştırınca bazen iki kere cevap veriyor. Bunun için polling_error eventini dinleyin:

bot.on('polling_error', (error) => {
  console.log('Hata oluştu:', error);
});

Son Sözler ve Tavsiyeler

İşte arkadaşlar, basit bir Telegram bot’u bu kadar. Ben yıllar önce bunları öğrenirken çok hata yaptım, ama her hata bana bir şey öğretti. Sizler de hata yapın, korkmayın. Hata yapıyorsanız yine yapın ki aynı hatalara düşmeyin bir daha.

Bot’u çalıştırmak için terminalde node bot.js yazmanız yeterli. Telegram’a gidip bot’unuza /start yazın, cevap verecektir.

Deneyerek öğrenin, merak edin, kırın dökün. Ben de öyle yaptım, şimdi bakıyorum da nereden nereye gelmişim. Sizler de geleceksiniz, sadece başlayın bir yerden.

Unutmayın, kimse uzman doğmuyor. Herkes bir yerden başlıyor. Ben de sizler gibi başladım, “acaba yapabilir miyim” diye düşünerek. Yaparsınız, merak etmeyin.

Kolay gelsin, başarılar diliyorum hepinize! Takıldığınız yerler olursa araştırın, sorun, öğrenin. Bu işin sırrı bu zaten.

RELATED ARTICLES

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

- Advertisment -

Most Popular

Recent Comments