Laravel ile Telegram Bot Geliştirme Rehberi
Son zamanlarda, pek çok platformun “kaydet” butonu var. Ancak bu butonların çoğu bir kütüphane oluşturmakla sınırlı kalıyor. Bu yazıda, bir Telegram botu kullanarak bu durumu nasıl ele alabileceğinizden bahsedeceğim.
Kesinlikle Senkronize Edemeyeceğiniz Listeler
Hedeflediğiniz uygulamaların sunduğu API’ler genellikle sınırlıdır. Örneğin:
- YouTube’un Data API’si “Watch Later” listesini dışlamaktadır.
- Facebook’un kaydedilen öğeleri için herhangi bir API bulunmamaktadır.
- X’in belirli API’leri var ama kullanımı oldukça maliyetli hale geldi.
Bunun yerine, kayıt adımını kendiniz yönetmelisiniz. Bunun için mobilde tanıdık “paylaş” sayfasını kullanabilir veya bir bookmarklet oluşturabilirsiniz.
Mimari Yapı
Pahalı veya karmaşık bir yapıya ihtiyaç duymadan basit bir uygulama geliştirmek mümkün. Kullanacağımız yığın:
- Laravel 13
- SQLite WAL modunda
- Veritabanı kuyruk sürücüsü
- Telegram Bot API
Bu uygulamada herhangi bir ön yüz yoktur; Telegram doğrudan kullanıcı arayüzü olarak kullanılır. Bu sayede bot, hem mobil hem de masaüstü platformlarda çalışır.
URL’leri Temizlemek
Kaydetme işlemi, URL’nizi temizlemekle başlar. Aynı video birkaç farklı şekilde karşınıza çıkabilir (örn. youtube.com/watch, youtu.be vb.). Bu tür URL’leri birleştirerek, bunun bir kopya olduğunu anlamış olursunuz.
İçeriği Çekmek
YouTube’dan içerikle ilgili başlık ve kanal bilgilerini oEmbed üzerinden alabilirsiniz. Eğer bir API anahtarınız yoksa, süre bilgisini alamazsınız ama kaydettiğiniz öğede başlık mevcut olacaktır.
X için, tweet metni ve yazar bilgilerini almak için public oEmbed uç noktasını kullanabilirsiniz.
Belirli İşleme Adımları
Kaydetme ve özetleme süreçleri bir kuyruk işine sahip. Bu yapı, botun kullanıcıya hızlı cevap vermesini sağlar. Ancak bazı durumlarda sonuçlar tamamlanamayabilir. Örneğin, YouTube’da transkript alma işlemi gerçekleşmeyebilir. Bu durumlarda oluşturduğunuz bot, tahmini bir özet sunar.
Seçim Logiği ve Arayüz
Her akşam belirli bir öğe seçilir ve kullanıcıya sunulur. Bu seçim sırasında önceki öğeler tercih edilir, ardından daha uzun süre görünmemiş bulunan öğeler tercih edilir. Kullanıcıya “İzle”, “Snooze 7 gün” veya “Arşivle” gibi seçenekler sunulur.
Olası Hatalar ve Önlemler
Şu anki kurulumda bazı güvenlik açıkları bulunabilir. Örneğin, yapılandırmasız bir ortamda tüm kimlik doğrulama uç noktaları açılabilir. Yapılandırma hatalarının önlenmesi için, hatalarınızı kontrol etmeniz önemlidir.
Sonuç ve Öneriler
Geliştirdiğiniz uygulamanın kullanıcı hesapları, panel ya da çoklu kiralama özellikleri olmamalıdır. Uygulamanızın küçük ve yönetilebilir olması, gelecekte kullanıcı ihtiyaçları doğrultusunda büyütme yapmanıza olanak tanır.
Sıkça Sorulan Sorular (SSS)
API neden mevcut değil?
YouTube, “Watch Later” listesini desteklemediği için mevcut değildir. AI sağlanmazsa ne olur?
Bağlantılar kaydedilir ama özet sunulmaz.
Uygulamanızın kaynağı GitHub‘da mevcuttur.
Kaynak: Orijinal Makale


