Giriş
<p>Laravel uygulamanızda kullanıcılarınıza Telegram aracılığıyla bildirim göndermek isteyebilirsiniz. Bu, güncellemeler ve uyarılar gibi durumlar için faydalıdır. Örneğin, <a href="https://ohdear.app" target="_blank" rel="noopener noreferrer">Oh Dear</a> gibi sitelerden Telegram bildirimlerine aboneyim. Bu sayede, herhangi bir web sitem ya da müşterilerimin web siteleri kapandığında anında Telegram üzerinden bildirim alıyorum ve sorunu hızla araştırıp çözüyorum.</p>
<p>Bu makalede, Laravel uygulamanızdan Telegram mesajları göndermenin hızlı bir incelemesini yapacağız.</p>
<h2>
<a name="setting-up-your-telegram-bot" href="#setting-up-your-telegram-bot">
</a>
Telegram Botunuzu Kurma
</h2>
<p>Telegram aracılığıyla mesaj gönderebilmek için önce Telegram uygulamasında bir bot oluşturmalısınız. Bu bot, sizin adınıza kullanıcılara mesaj göndermekten sorumlu olacaktır.</p>
<p><a href="https://core.telegram.org/bots#how-do-i-create-a-bot" target="_blank" rel="noopener noreferrer">Telegram dokümantasyonu</a>, bir bot oluşturma konusunda güzel bir kılavuz sunmaktadır. Temel olarak, Telegram'da "BotFather" kullanıcısıyla bir konuşma başlatmanız gerekiyor. Bu, botlarınızı oluşturup yönetebileceğiniz bir sohbet başlatacaktır.</p>
<p>Telegram botları son derece güçlüdür ve birçok özellikle doludur. Bu yüzden botunuzu kurarken farklı seçenekleri keşfetmek için biraz zaman harcamanızı öneririm.</p>
<h2>
<a name="installation" href="#installation">
</a>
Kurulum
</h2>
<p>Telegram bildirimleri göndermek için <code>laravel-notification-channels/telegram</code> paketini kullanacağız. Bu paket, Laravel'in mevcut bildirim sistemine entegre olan yeni bir bildirim kanalı sağlar, böylece Telegram mesajları göndermek oldukça kolaydır. Bu makalenin yazıldığı sırada paket, 3.1 milyon kurulum ve 1.1k yıldız almıştır.</p>
<p>Paketin GitHub deposunu buradan bulabilirsiniz: <a href="https://github.com/laravel-notification-channels/telegram" target="_blank" rel="noopener noreferrer">https://github.com/laravel-notification-channels/telegram</a></p>
<p>Paketi kurmak için, proje kök dizininde aşağıdaki komutu çalıştırabilirsiniz:<br/></p>
<div class="highlight js-code-highlight">
<pre class="highlight plaintext"><code>composer require laravel-notification-channels/telegram<p>Şimdi paket kurulmuş durumda ve kullanıma hazır.</p>
<h2>
<a name="getting-the-chat-id" href="#getting-the-chat-id">
</a>
Sohbet ID'sini Alma
</h2>
<p>Telegram botunuzdan bir kullanıcıya mesaj gönderebilmek için önce kullanıcının sohbet ID'sini bilmeniz gerekmektedir. Bir bot, bir kullanıcıyla konuşmaya başlayamaz; bu nedenle, kullanıcı ilk önce bot ile etkileşimde bulunmalıdır (örneğin, ona bir mesaj göndererek ya da Telegram'da "Başlat" butonuna tıklayarak) ki sohbet başlatılsın.</p>
<p>Kullanıcı botunuzla etkileşimde bulunduktan sonra sohbet ID’sini alabilirsiniz. Bunun için paketin içindeki sınıfı kullanarak kanal güncellemelerini çekebilir ve güncellemeleri inceleyerek mesaj göndermek istediğiniz kullanıcının sohbet ID'sini bulabilirsiniz. Paketin dokümantasyonu bu konuda daha fazla bilgi sunmaktadır.</p>
<p>Alternatif olarak, Telegram botunuzu bir webhook aracılığıyla Laravel uygulamanıza ayarlayarak bir konuşma başladığında sohbet ID'sini iletebilirsiniz. Daha sonra bu sohbet ID'sini güvenli bir şekilde veritabanınıza kaydedebilirsiniz.</p>
<p>Hangi yaklaşımı kullanırsanız kullanın, güvenliği aklınızda bulundurmayı unutmayın. Rastgele sohbet ID'lerine mesaj göndermenin yollarını açacak güvenlik açıkları oluşturmamalısınız.</p>
<h2>
<a name="sending-notifications" href="#sending-notifications">
</a>
Bildirim Gönderimi
</h2>
<p>Laravel'in bildirim sisteminin Telegram bildirimlerini nereye göndermesi gerektiğini bilmesi için notifiye edilebilir modelde yeni <code>routeNotificationForTelegram</code> metodunu tanımlamalıyız (genellikle <code>App\Models\User</code>). Bu durumda, kullanıcının Telegram sohbet ID'sini <code>telegram_chat_id</code> sütununda sakladığımızı varsayıyoruz. Sonrasında, <code>routeNotificationForTelegram</code> metodunda bu değeri döndürebiliriz:</p>
<div class="highlight js-code-highlight">
<pre class="highlight php"><code><span class="k">declare</span><span class="p">(</span><span class="n">strict_types</span><span class="o">=</span><span class="mi">1</span><span class="p">);</span>namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
final class User extends Authenticatable
{
use Notifiable;
<span class="k">public</span> <span class="k">function</span> <span class="n">routeNotificationForTelegram</span><span class="p">():</span> <span class="kt">int</span>
<span class="p">{</span>
<span class="k">return</span> <span class="nv">$this</span><span class="o">-></span><span class="n">telegram_chat_id</span><span class="p">;</span>
<span class="p">}</span>}


