<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Telegram bot &#8211; Yazılım Mühendisi</title>
	<atom:link href="https://zetmaill.com/tag/telegram-bot/feed/" rel="self" type="application/rss+xml" />
	<link>https://zetmaill.com</link>
	<description>Mühendislik Harikası</description>
	<lastBuildDate>Sun, 23 Nov 2025 15:30:50 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>Telegram Bot Yapımı: Sıfırdan Başlayanlar İçin Rehberim</title>
		<link>https://zetmaill.com/telegram-js-bot-yapimi/</link>
					<comments>https://zetmaill.com/telegram-js-bot-yapimi/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 23 Nov 2025 15:30:50 +0000</pubDate>
				<category><![CDATA[Js]]></category>
		<category><![CDATA[Telegram]]></category>
		<category><![CDATA[Javascript ile bot yapma]]></category>
		<category><![CDATA[Js Bot Yapımı]]></category>
		<category><![CDATA[Js Dersleri]]></category>
		<category><![CDATA[Js ile telegram botu yapımı]]></category>
		<category><![CDATA[Telegram bot]]></category>
		<guid isPermaLink="false">https://zetmaill.com/?p=478</guid>

					<description><![CDATA[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 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">Telegram Bot Yapımı: Sıfırdan Başlayanlar İçin Rehberim</h1>



<p>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.</p>



<h2 class="wp-block-heading">İlk Adımlar ve Hazırlıklar</h2>



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



<p>Node.js kurulu olması lazım bilgisayarınızda. Eğer yoksa nodejs.org&#8217;dan indirin, kurun. Korkmayın hiçbir şey olmaz bilgisayarınıza. Ben de ilk kurduğumda &#8220;acaba bir şey mi bozulur&#8221; diye düşünmüştüm, merak etmeyin.</p>



<p>Telegram&#8217;da @BotFather&#8217;a gidip bot oluşturmanız gerekiyor. Bu arkadaş Telegram&#8217;ı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 &#8220;bot&#8221; olması gerekiyormuş, ben saatlerce uğraştım neden kabul etmiyor diye. Mesela &#8220;benimharikabotum_bot&#8221; gibi bir şey yazmanız lazım.</p>



<h2 class="wp-block-heading">Kodlamaya Başlıyoruz</h2>



<p>Ş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:<br></p>



<pre class="wp-block-code"><code>npm init -y
npm install node-telegram-bot-api</code></pre>



<p>Bakın şu kod ne işe yarar anlatayım: <code>npm init -y</code> 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ı.</p>



<p>Şimdi <code>bot.js</code> diye bir dosya oluşturun. İçine şunları yazalım:</p>



<pre class="wp-block-code"><code>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 &amp;&amp; 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.`);
});
</code></pre>



<p>Bakın burada size bir şey anlatayım. <code>polling: true</code> kısmı çok önemli. Bu bot&#8217;unuzun sürekli Telegram&#8217;ı 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.</p>



<h2 class="wp-block-heading">Biraz Daha Geliştirelim</h2>



<p>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:<br></p>



<pre class="wp-block-code"><code>bot.onText(/\/hava (.+)/, async (msg, match) => {
  const chatId = msg.chat.id;
  const sehir = match&#91;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);
});</code></pre>



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



<h2 class="wp-block-heading">Butonlar Ekleyelim</h2>



<p>Şimdi size güzel bir şey göstereyim. Butonlu mesajlar:</p>



<pre class="wp-block-code"><code>bot.onText(/\/menu/, (msg) => {
  const chatId = msg.chat.id;
  
  const options = {
    reply_markup: {
      inline_keyboard: &#91;
        &#91;
          { text: ' Hava Durumu', callback_data: 'hava' },
          { text: ' Saat', callback_data: 'saat' }
        ],
        &#91;
          { 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.');
  }
});</code></pre>



<h2 class="wp-block-heading">Hata Yapmaktan Korkmayın</h2>



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



<p>Token&#8217;ı GitHub&#8217;a yüklemişim bir keresinde, bot&#8217;u ele geçirmişler. Hemen BotFather&#8217;dan yeni token aldım. Sizler <code>.env</code> dosyası kullanın, token&#8217;ı oraya koyun.</p>



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



<p>Bot&#8217;u çalıştırıp kapatıp tekrar çalıştırınca bazen iki kere cevap veriyor. Bunun için <code>polling_error</code> eventini dinleyin:</p>



<pre class="wp-block-code"><code>bot.on('polling_error', (error) => {
  console.log('Hata oluştu:', error);
});</code></pre>



<h2 class="wp-block-heading">Son Sözler ve Tavsiyeler</h2>



<p>İşte arkadaşlar, basit bir Telegram bot&#8217;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.</p>



<p>Bot&#8217;u çalıştırmak için terminalde <code>node bot.js</code> yazmanız yeterli. Telegram&#8217;a gidip bot&#8217;unuza /start yazın, cevap verecektir.</p>



<p>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.</p>



<p>Unutmayın, kimse uzman doğmuyor. Herkes bir yerden başlıyor. Ben de sizler gibi başladım, &#8220;acaba yapabilir miyim&#8221; diye düşünerek. Yaparsınız, merak etmeyin.</p>



<p>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.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://zetmaill.com/telegram-js-bot-yapimi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
