Telegram gruplarında Rose‘ u 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?
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ı
- BotFather ile bot oluşturmak.
- Node.js ile haberleşmeyi sağlamak.
1) BotFather ile Telegram Botu Oluşturma Adımları:
Olmazsa Olmazlar
- Telegram’ın arama yerine “BotFather” yazın. Sağ tarafında mavi tik işaretli olana tıklayın.
- Gelen ekranın aşağısındaki butonla “BotFather” ile mesajlaşmayı başlatın.
- 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.
- Gelen mesajda Botumuzun isminin ne olacağı isteniyor. Burası benzersiz bir değere sahip olmak zorunda değil. Bir isim seçin ve gönderin.
- Ş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 🙂
- 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.
Bu işlemden sonra artık bir botunuz var ama ne yapacağını bilmeyen bir bot bu. 🙂
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 🙂
//python-telegram-bot2)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.
- Telegram botunuz için bir klasör oluşturun. (“ mkdir klasor_adi ” diyerek oluşturabilirsiniz)
- cmd ekranından oluşturduğunuz klasör içerisine giriniz. (cd komutu işinize yaracaktır)
- ” npm init” yazın. Klasörün içindeyken. Sorulan soruları geçebilir ve varsayılan değerlerle devam edebilirsiniz.
- Klasörün içinde “ Package.js ” oluşacaktır.
- Bunun yanına klasöre gidip “ index.js ” dosyası oluşturun.
- Tekrar cmd ekranında kaldığımız yerden “npm install telegram-bot-api –save” diyerek apimizi klasöre ekleyelim.
- Kod başlıklı oluşturduğumuz kodu index.js dosyanıza kopyalayın.
- 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 için index.js dosyanıza eklemeniz gereken kod. Size 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);
});
}
});
//best telegram bot
Telegram chat bot olan 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.
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.
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…
Ben Projemi Githuba Attim muzik botu icin repo hazir Sadece sunucu lazim bana heroku desen adres sorunu kanser ucretsiz vds varmi diye soracaktim ,
İlginiz ve yorumunuz için teşekkürler.
Fakat bu konuda size şu anda yardımcı olamıyoruz.
Ücretsiz vds çok nadir bulunuyor. Olanlar da en iyi ihtimalle maksimum 30 gün süreli oluyor.
Test yapmak için soruyorsanız Hosting firmalarının deneme sürümlerine göz atabilrisiniz.
I really like your writing style, excellent info , regards for posting : D.
Thank you 🙂
Your style is so unique compared to other folks I have read stuff from.
Thanks for posting when you’ve got the opportunity,
Guess I’ll just bookmark this blog.
Thank you very much 🙂
Uzun zamandır bot programlamıyordum. NodeJS ile başlangıç yapalım madem. Gayet bilgilendirici bir yazı olmuş. Ellerinize sağlık 🙂
Çok teşekkürler. Beğenmenize ve işinize yaramasına sevindik. <3
Ben All bot yani adamları @all komutu ile tag eden yani çağıran bot yapmak istiyorum yardım ede bilirsinizmi?
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
Selam.
Her yazılanı uyguladım. Çalıştırdım da ama bot telegramda hiç cevap vermiyor.
cmd ekranını açık bırakmanız gerekiyor. Kapattıysanız çalışmaz
CMD açık tutuyorum olmuyor. Ekstra paket yüklemesi olabilir mi?
C:\Users\Arif\Desktop\TeleDeneme1>npm install telegram-bot-api -save
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
added 103 packages, and audited 104 packages in 12s
Bu bot yapılırken kullanılan API de zamanla yenilikler olduğu için botunuz çalışmıyor.
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.
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 ?
Mümkünse başka bir bilgisyardan deneyebilirsin.
Nodejs’nin Windows 7 için sürümleri var. Onlardan birini deneyebilirsin.
Botu Node.js kullanarak yapacak arkadaşlar 7/24 açık tutmak için Glitch.com üzerinden Node App oluşturabilir.
Kesinlikle katılıyorum. Teşekkürler.
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
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.
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: []
}
Bizim kullandığımız APIde güncellemeler olduğu için hata alıyorsunuz. Yeni bir Api ile deneyebilirsiniz.
Pc olmadan yapmış olduğumuz botu çalıştırma şansı varmı acaba? Her zaman pc İnternete bağlı değil. Bundan dolayı soruyorum.
İnternet olmadan botunuz çalışmaz 🙂
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
Merhaba,
Video konusunda ricanızı dikkate alacağız. İlk fırsatta yapmaya çalışacağız <3
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
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.
selam rabia kardeşim ,
peki nasıl test ediyoruz çalışıp çalışmadığını.
teşekkürler.
cmd ekranında botunuzu oluşturduğunuz klasör içindeyken “node index.js” diyerek çalıştırabilirsiniz.
Yahu Sinir Oldum. Kopyalayamıyorum Nasıl Sayfa BUUUU
Dilerseniz telefonunuzdan kopyalayabilirsiniz.