TeknoKültürYazılım

10 Dakikada Telegram Botu Nasıl Yapılır?

Telegram gruplarında Roseu göreniniz oldu mu? Ya da Maria‘ yı ? Hava tahminini söyleyen, yazıyı sese ya da sesi yazıya çeviren telegram botlarını gördünüz mü? Peki çeviri yapan botları?

İşte bu yazı, bunları görüp Nasıl oluyor bu ya?” diyenler veya yapmak isteyenler” için hazırlanmıştır.

Telegram Botu Nedir?

BOT , TELEGRAM BOTU
Telegram botu

Telegram botu belirli bir token üzerinden mesaj göndermeleri yapan ve mesajlaşmayı kolaylaştıran bir araçtır. Örnek vermek gerekirse; bu araç, bir telegram grubuna katıldığınız an “hoşgeldiniz” gibi mesaj almanızı sağlayan bottur. Sabitlenen mesajları hatırlatan, belirli bir kelime girdiğinizde karşılık veren ya da liste tutan bot gibi bir çok örnek verilebilir.

Telegram Bot için Yapmamız Gerekenler

Telegram botumuzu yapmak ve yönetmek sizler için bu yazıyı okuduktan sonra çok kolay. Ana başlık olarak bakarsak; iki adımda her şey hazır olacaktır.
İlki yine bir Telegram botu olan BotFather‘ ı kullanarak kendi botumuzun tabiri caiz ise vücudunu oluşturmak olacaktır.

BotFather, telegram botlarını yönetmek için kullanılan bir telegram botudur. Sonraki aşamada ise telegram api ile HTTP(Hiper Metin Transfer Protokolü) haberleşme yapan bir yazılım olacak. Ve her işte olduğu gibi bu kısmı daha da basitleştiren daha da üst apiler var.

Bu yazıda NodeJS ortamı kullanılacağız. NodeJS içinde, bunun için hazırlanmış birden fazla API var. Bizim kullandığımız api : telegram-bot-api. NodeJS server (sunucu) tabanlı JS uygulamaları gerçekleştirebileceğimiz bir ortam. Daha fazla bilgi için arama motorlarını kullanabilirsiniz. Ya da belki yakın zamanda Teknotower yazıları gelebilir. ;)

Bot Oluşturma Basamakları

  1. BotFather ile bot oluşturmak.
  2. Node.js ile haberleşmeyi sağlamak.

1) BotFather ile Telegram Botu Oluşturma Adımları:

Olmazsa Olmazlar

  1. Telegram’ın arama yerine “BotFather” yazın. Sağ tarafında mavi tik işaretli olana tıklayın.
  2. Gelen ekranın aşağısındaki butonla “BotFather” ile mesajlaşmayı başlatın.
  3. Bir açıklama mesaj gelecektir. İster gelen mesajda yer alan “/newbot” yazısına tıklayın isterseniz “/newbot” yazın isterseniz de mesaj yazma alanının sağında “/” karakterinin olduğu butona basarak çıkan komutlardan “/newbot” u seçin.
  4. Gelen mesajda Botumuzun isminin ne olacağı isteniyor. Burası benzersiz bir değere sahip olmak zorunda değil. Bir isim seçin ve gönderin.
  5. Şimdi ise bizden “username” bilgisi isteniyor. Dikkat edilmesi gereken nokta ise “username” in “bot” harfleri ile bitmesi gerektiğidir. İlk denemenizde bot oluşturamama ihtimaliniz var çünkü aklınıza gelen bot için “username” çoktan alınmış olabilir :)
  6. Eğer 5. adımı da başarı ile tamamladıysanız artık akılsız bir botunuz var demektir. Size verilen token, bot ile haberleşmeyi sağlayacaktır. Bunun için herhangi bir dil kullanabilirsiniz. Lakin bu yazıda node.js ve telegram botları için yazılmış özel bir api kullanacağız.
botfather
1. ve 2. adım. Telegram botu oluşturmak için ilk adım BotFather’i bulmak. Ve mesaj atmak.
telegram botu
3. adım ” /newbot ” yazarak yeni bot için istek gönderilir.

Bu işlemden sonra artık bir botunuz var ama ne yapacağını bilmeyen bir bot bu. :)

telegram botu
Bu şekilde botumuza açıklama ekleyebiliriz.
telegram botu
Açıklamanın eklenmiş hali.

Olursa İyi Olacaklar

“BotFather” ile mesajlaşmaya başladığınızda uzun bir komut ve açıklama mesajı gelmişti. Oradan botunuzun profilinde görülen tanım, hakkında yazısı, profil resmi gibi alanları ayarlayabilirsiniz. Yine, botunuzu silebilir, isim verebilir oyun ekleyebilirsiniz. Örneğin ilk gelen mesajda “Edit Bots” altında “/setabouttext” komutuna tıklayın. Sonra bot seçim ekranından botunuzu seçin ve bot için hakkında yazısı yazıp gönderin. Bu kadar :)

2)Node.js ile Telegram Botunu Haberleştirme Adımları:

NodeJS için 17 MB’lık bir dosya aşağı yukarı. Kurulumu gerçekleştirin. Buradan ulaşabilirsiniz.

Daha sonra cmd den aşağıdaki adımları gerçekleştireceğiz:

NOT: Windows tuşu + r dedikten sonra cmd yazarsanız karşınıza çıkacaktır.

  1. Telegram botunuz için bir klasör oluşturun. ( mkdir klasor_adi ” diyerek oluşturabilirsiniz)
  2. cmd ekranından oluşturduğunuz klasör içerisine giriniz. (cd komutu işinize yaracaktır)
  3. npm init” yazın. Klasörün içindeyken. Sorulan soruları geçebilir ve varsayılan değerlerle devam edebilirsiniz.
  4. Klasörün içinde “ Package.js ” oluşacaktır.
  5. Bunun yanına klasöre gidip “ index.js ” dosyası oluşturun.
  6. Tekrar cmd ekranında kaldığımız yerden “npm install telegram-bot-api –save” diyerek apimizi klasöre ekleyelim.
  7. Kod başlıklı oluşturduğumuz kodu index.js dosyanıza kopyalayın.
  8. Kopyaladıktan sonra ” ‘ TOK:EN ‘ ” yazan kısma tek tırnakları kaldırmadan BotFather’ in size botunuz için verdiği token‘ i kopyalayın.
telegram botu. cmd komutları
1. ve 2 Adım. Telegram botu için dosya oluşturulmuş ve içine girilmiş oldu.
npm init. telegram botu.
3. adım. ” npm init ” yazılır.
10 Dakikada Telegram Botu Nasıl Yapılır? 1 telegram bot
4. ve 5. adım. Dosyalar oluşmuş olacaktır.
telegram bot api
6. adım. Bot api eklenir.
telegram bot api
7. ve 8. adım. 7.satırda botFather’ in size verdiği token’i kopyalarsanız artık bitti demektir. :)

Telegram botu için index.js dosyanıza eklemeniz gereken kod. Size telegram botunuz için verilen token’ i kopyalamayı unutmayın… :)

//**********************************
	// Api eklenir.
	var telegram = require('telegram-bot-api');	

	// Apimize gerekli JSON yollanır.
	var api = new telegram({
		token: 'TOK:EN',
		updates: {
			enabled: true,
			get_interval: 1000
		}
	});

	// "Message" gelirse çalışmaısnı istediğimiz fonksiyonu yazıyoruz.
	api.on('message', function(message) {
		if (message.text != "" && message.text != undefined) {
			var response = "Sen : " + message.text + " içerikli mesaj attın!";  // Gelen mesajı göndereceğimiz string.
			
			// Gelen chat id'yi okuyoruz ilgili chat id ye gitsin diyoruz. A grubundan okunan mesajın
			// B grubuna gitmesini istemeyiz :)
			// reply_to_message_id ise reply olarak cevaplamak için ekliyoruz.
			api.sendMessage({
				reply_to_message_id:message.message_id,
				chat_id: message.chat.id,
				text: response
			})
			.then(function(message)
			{
				// Mesaj gönderildikten sonra. veya bilgi alma da
			})
			.catch(function(err)
			{
				console.log(err);
			});
		}
	});

Rose bot komutları gibi çalışacak bir botumuz var artık. Rose bot komutları kadar işlevsel olmayabilir ama bu sizin elinizde olan bir şey. Oluşturduğumuz bu botun farklılaştırabilirsiniz.

Not: Kodu kopyalayamıyorsanız eğer; koda buradan ulaşabilirsiniz…

Botun çalıştığını nasıl kontrol ederiz?

“node index.js” diyerek çalıştıracağınız botunuza, akıl (akılsız da olsa) eklenmiştir :) Bu cmd sayfanızı kapatmadan botunuz ile telegram üzerinde mesajlaşmaya başlayabilirsiniz.

10 Dakikada Telegram Botu Nasıl Yapılır? 2 telegram bot
Telegram botunuzun cevapları

Peki bahsi geçen Api nedir?

API : Application Programing Interface yani UPA : Uygulama Programlama Arayüzü

Kaynak kodu açık olmayan fakat kullanım için destek sağlayan arayüzdür.

Telegram botu için api ise şunun için yazılmıştır:

Normalde telegram için botunu yönetmek istersek http ile saf kod yazarak çok uğraşmamız gereklidir. Lakin birçok projede sürekli yapılan ayarları bir api ile birleştirmiş biri bu api üzerinden kolayca yönetebilir. Bu telegram-bot-api nodeJs için yazılmış bir api. Ve telegram botları için sadece bu api yok. Birkaç tane daha api var. :)

Eğer bunları kullanmasaydık temel işlemler için çok uğraş gerekecekti. Aynı kodu herkes yazmak zorunda kalacaktı. Bu yüzden api arayüzü sağlanıyor.

Bu yazımda sizler ile beraber kişisel telegram botumuzu nasıl yapacağımızı öğrendik. Umarım faydalı olmuştur. Başka yazılara göz atmak için Anasayfa ‘ ya geçebilir, İnstagram ya da Twitter sayfalarımızı takip edebilirsiniz…

Sağlıcakla kalın…

29 Yorum

  1. Uzun zamandır bot programlamıyordum. NodeJS ile başlangıç yapalım madem. Gayet bilgilendirici bir yazı olmuş. Ellerinize sağlık :)

  2. Ben All bot yani adamları @all komutu ile tag eden yani çağıran bot yapmak istiyorum yardım ede bilirsinizmi?

  3. Verdiğiniz bilgiler için teşekkür ederim benim pc ile boot yapma şansım yok herşey telefon üzerinden olacak şekilde küfür argo konuşmaları ekrandan silicek gerektiğinde kişiyi banlayacak bir boot u telefon üzerinden kurup yönetme şansım olabilirmi acaba

  4. Selam.
    Her yazılanı uyguladım. Çalıştırdım da ama bot telegramda hiç cevap vermiyor.

  5. C:\Users\Halil\eceyilmazbot>npm install telegram-bot-api –save
    npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
    npm WARN deprecated har-validator@5.1.5: this library is no longer supported
    npm notice created a lockfile as package-lock.json. You should commit this file.
    npm WARN eceyilmazbot@1.0.0 No description
    npm WARN eceyilmazbot@1.0.0 No repository field.

  6. the application is only supported on Windows 8.1 windows server 2012 or higher
    Uygulamayi yüklemek isteyince bu hatayı aldım. Ben W7 kullanıyorum. Desteklemiyor ne yapabilirim ?

  7. Botu Node.js kullanarak yapacak arkadaşlar 7/24 açık tutmak için Glitch.com üzerinden Node App oluşturabilir.

  8. Cmd alanına “node index.js” yapıştırdım ama benim bot da yanıt yok.
    Token kısmına yapıştırma işlemimde tamam,
    Hata falan almıyorum ama çalışmıyor malesef

    1. node index.js işleminden sonra telegramda oluşturduğunuz bota herhangi bir mesaj attığınızda geri dönüş alabilirsiniz. Bu şekilde çalıştığını gçreceksiniz.

  9. merhaba son kısımda node index.js yazdıktan sonra bu hatayı alıyorum: internal/modules/cjs/loader.js:883
    throw err;
    ^

    Error: Cannot find module ‘C:\Users\90539\botum\index.js’
    ←[90m at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)←[39m
    ←[90m at Function.Module._load (internal/modules/cjs/loader.js:725:27)←[39m
    ←[90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)←[39m
    ←[90m at internal/main/run_main_module.js:17:47←[39m {
    code: ←[32m’MODULE_NOT_FOUND’←[39m,
    requireStack: []
    }

  10. Pc olmadan yapmış olduğumuz botu çalıştırma şansı varmı acaba? Her zaman pc İnternete bağlı değil. Bundan dolayı soruyorum.

  11. kardesım hıc dosya falan olusmuyor ya ben pek te anlamıyorum bu tur ıslerden vıdeolu anlatma sansın yok mu ? rıca etsek

  12. merhaba öncelikle teşekkür ederim böyle bir yardımda bulunduğunuz için fakat ben index.js dosyası nasıl yapılır bilmiyorum .json dosyaları oluşturuldu ama .index.js yapamadım yardımcı olurmusunuz

    1. bunu elle oluşturmanı gerekiyor. Projenizin olduğu klasör içerisinde “yeni metin belgesi” oluşturup adını “index.js” olarak değiştirebilirsiniz. Rica ederim iyi günler dilerim.

  13. selam rabia kardeşim ,
    peki nasıl test ediyoruz çalışıp çalışmadığını.

    teşekkürler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu