1. Ana Sayfa
  2. SQL Server
  3. SQL Server ile Telegram’a Bildirim Gönderin

SQL Server ile Telegram’a Bildirim Gönderin

telegram2
VidyoConnect

Bugün sizlere SQL Server‘ı yönetirken elde ettiğiniz bildirimleri nasıl Telegram’a gönderebileceğinizi anlatıyor olacağım. Geçmiş dönemde zaten bu tarz bildirimleri mail,slack gibi ortamlara gönderilmesi ile ilgili olarak içerikler hazırlamıştık.

Öncelikli olarak ilk yapmamız gereken tabi ki bir telegram hesabına sahip olmak. Telegram hakkında da temel bilgi vermek isterim. Hepimizin kullandığı WhatsApp tarzı bir mesajlaşma platformudur ve her iki ürünü birbirlerinden ayıran farklı özellikleri söz konusudur. Konu içerisinde anlatacağımız bildirim gönderimini whatsapp’den yapmak için WhatsApp business’a yada farklı ara yazılımlara ihtiyaç duyabilmekteyiz.

Telegram hakkında bilgi paylaştıktan sonra yapmamız gereken telegram içinde bildirim gönderimini yapabilmek için bir token ve bir chat_id elde edebilmek. Bunun için web.telegram.org adresine giriş yapıyoruz.

Resim-1 

Search kısımına @BotFather yazıyoruz ve konuşmayı start ile başlatıyoruz.

Resim-2

Yukarıdaki resimde görüldüğü gibi @BotFather ile aslında bir çok içeriğe yönelik destek alabiliyoruz. Bizim yapmak istediğimiz yeni bir bot oluşturmak. Bunun için /newbot yazıyoruz. Bizden ilk önce bot için bir isim daha sonrasında da bot için bir username bilgisi istiyor.

Resim-3

Resim3 özelinde dikkat edilmesi gereken kısım username bilgisinin _bot ile bitme zorunluluğunun olması ve yine aynı resimde size bu botu kullanmanız için ihtiyaç duyacağınız http API bilgisini veriyor olması, bu bilgiyi not almayı unutmayın!

Sırada Chat_id bilgisinin alınması var. Bunun için resim-2 de verdiğimiz username arayıp kendisine bir merhaba demeliyiz ki bize alınmasın. (Arayıp bulup,start diyoruz.)

Resim-4 

Oluşturduğumuz botumuza Merhaba dedikten sonra yapmamız gereken aşağıda vereceğim adresi yeni bir browser sekmesinde düzenleyip açmanız gerekiyor.

https://api.telegram.org/bot<HTTPTOKENAPI>/getUpdates

Burada <HTTPTOKENAPI> yazan kısımı Resim3 de gördüğümüz HTTPAPI bilgisi ile değiştiriyoruz. İşleme devam edince karşımıza aşağıdaki gibi bir ekran geliyor.

Resim-5 

Telegram üzerinden yapılması gerekenleri tamamladık, şimdi elimizde bir Token bilgisi bir de Chat_id bilgisi var. Bu iki bilgiyi kullanarak SQL Server’da http post request yapıp bildirimimizi göndereceğiz. Bu işlem için öncelikli olarak SQL Server tarafında Ole nesnelerinin kullanımı açmamız gerekmekte.  Aşağıdaki kod bloğu ile bu işlemi gerçekleştirelim.

EXEC sp_configure ‘Ole Automation Procedures’, 1;
GO
RECONFIGURE;
GO

Şimdi ise bildirimi yapacağımız sorgumuzda sıra, Sorguda değiştirilmesi gereken iki kısım mevcut. Elimizde bulunan Token ve Chat_id bilgilerini girip istediğimiz bildirimi yazıp sorguyu çalıştırıyor olacağız. (@TelegramToken ve @TelegramChatId bilgilerini doldurmalısınız!)

DECLARE @responseText NVARCHAR(2000);
DECLARE @responseXML NVARCHAR(2000);
DECLARE @ret INT;
DECLARE @status NVARCHAR(32);
DECLARE @statusText NVARCHAR(32);
DECLARE @token INT;
DECLARE @url NVARCHAR(256);
declare @TelegramToken NVARCHAR(256);
declare @TelegramChatId NVARCHAR(32)
declare @TelegramMesaj  NVARCHAR(32)

set @TelegramToken =”
set @TelegramChatId = ”
set @TelegramMesaj = ‘Çağlar Özenç – DMC Bilgi Teknolojileri ‘

SET @url = ‘https://api.telegram.org/bot’ + @TelegramToken +’/sendMessage?chat_id=’+@TelegramChatId+’&parse_mode=Markdown&text=CAGLAROZENCSQLServer-DMC’;

— Open the connection.
EXEC @ret = sp_OACreate ‘MSXML2.ServerXMLHTTP’, @token OUT;
IF @ret <> 0 RAISERROR(‘Unable to open HTTP connection.’, 10, 1);

— Send the request.
EXEC @ret = sp_OAMethod @token, ‘open’, NULL, ‘POST’, @url, ‘false’;
EXEC @ret = sp_OAMethod @token, ‘setRequestHeader’, NULL, ‘Authentication’, null;
EXEC @ret = sp_OAMethod @token, ‘setRequestHeader’, NULL, ‘Content-type’, null;
EXEC @ret = sp_OAMethod @token, ‘send’, NULL, null;

— Handle the response.
EXEC @ret = sp_OAGetProperty @token, ‘status’, @status OUT;
EXEC @ret = sp_OAGetProperty @token, ‘statusText’, @statusText OUT;
EXEC @ret = sp_OAGetProperty @token, ‘responseText’, @responseText OUT;

— Show the response.

PRINT ‘Status: ‘ + @status + ‘ (‘ + @statusText + ‘)’;
PRINT ‘Response text: ‘ + @responseText;

— Close the connection.
EXEC @ret = sp_OADestroy @token;
IF @ret <> 0 RAISERROR(‘Unable to close HTTP connection.’, 10, 1);

Sorgu çalışması sonrasında işleminiz başarılı olduysa verdiğiniz bilgilendirme telegram’a gelecektir.

Resim-6

Bu yöntemi kullanarak yönetiminizde olan SQL Server Veritabanı Sunucularında gelişen durumlardan hızlıca bilgi sahibi olabilirsiniz. Farklı geliştirmeler ile bildirimleri telegram gruplarına gönderebilir, sizin haricinizde bir çok kişiye anlık bilgilendirme yapmış olabilirsiniz.

Bu konuyla ilgili sorularınızı http://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs: sql, SQL Server, sql server notification send telegram, sql telegram

VidyoConnect
Yorum Yap

Yazar Hakkında

Milenyumdan beri ilginç bir merak duygusu ile başlayan bilgisayar ve teknoloji dünyası merakı sayesinde eğitim yaşantımı doğup büyüdüğüm Düzce'de geçirdim. Sonrasında Düzce'nin kendimi geliştirmek adına yeterli imkanlara sahip olmadığından İstanbul'a gelip Bilge Adam Eğitim Kurumlarından Yazılım ve Veritabanı eğitimi aldım. Eğitimimi tamamlarken çeşitli Windows ve Web uygulamaları geliştirdim. Sırası ile Sentez Yazılım, Nebim Yazılım, Ciceksepeti, Doğan Holding, Kariyer.Net, TurkNet gibi firmalarında Yönetici / Müdür pozisyonlarında farklı ünvanlarda ( Yazılım Geliştirici / Raporlama ve Veritabanı Yöneticisi gibi) görev aldım. Şimdilerde ise DMC Bilgi Teknolojileri firmasının Kurucu Ortaklığını ve Veritabanı Danışmalığı Hizmeti vermekteyim.

Yorum Yap