Telegram'da yönlendirme için webhook yapılandırma

Webhook'lar, belirli olaylar gerçekleştiğinde siteler ve uygulamalar arasında otomatik veri gönderilmesini sağlayan bir mekanizmadır. Veriler HTTP isteğiyle aktarılır: bir uygulama, verileri internet üzerinden diğer uygulamanın önceden belirtilmiş adresine gönderir.

Telegram'daki bir mesajın başka bir siteye veya uygulamaya aktarılması

Webhook'ların sunduğu olanaklar

FLOWIN'de webhook'lar yönlendirmelerle birlikte çalışır. Kaynak sohbette (kaynakta) bir mesaj oluşturulduğunda, düzenlendiğinde, silindiğinde veya sabitlendiğinde ya da mesajların yönlendirildiği sohbette (hedefte) bir düğmeye tıklandığında tetiklenebilirler.

Böylece FLOWIN'i sosyal ağlara, borsalara, elektronik tablolara ve CRM'lere (müşteri ilişkilerini yönetmeye yönelik sistemlere) bağlayabilirsiniz. Bu bağlantıya entegrasyon denir ve şunları yapmanızı sağlar:

  • Telegram'daki talepleri otomatik olarak CRM'ye eklemek.
  • Telegram'daki alım satım sinyallerini otomatik takip için, yani bu sinyallere göre otomatik işlem yapılması amacıyla bir borsaya aktarmak.
  • Telegram'daki mesajları diğer sosyal ağlara yönlendirmek.
  • Gönderileri ve mesajları Google E-Tablolar'a kopyalamak.
  • Botta bir otomatik yanıtlayıcı ayarlamak.

Her senaryo için site veya uygulama tarafında verilerin alınmasını ve istenen işlemin yapılmasını yapılandırmak gerekir.

Webhook oluşturma

Webhook'u, veri almak için bir adres sağlayan ve alınan istekleri gösteren webhook.site sitesinde test edelim. Buraya Telegram'daki yeni bir mesajın metnini göndereceğiz.

Bunun için FLOWIN'de yapılandırılmış ve çalışan bir yönlendirme gerekir.

İlk test için

Ayrı bir test sohbeti ve hayalî bir talep kullanın. Test için ad, telefon numarası veya başka kişisel veriler olmadan yalnızca metni göndermek yeterlidir.

  1. @flow_in_bot’u açın, /start komutunu gönderin ve “Kontrol paneli” düğmesine tıklayın.

    @flow_in_bot üzerinden kontrol paneline giriş
    @flow_in_bot üzerinden kontrol paneline giriş.
  2. Ayrı bir sekmede webhook.site sitesini açın. “Your unique URL” alanındaki, istekleri almak için verilen adresi kopyalayın.

    Test isteğini almak için kullanılan adres
    Test isteğini almak için kullanılan adres.
  3. FLOWIN panelinde “Menü” → “Webhook'lar” bölümünü açın ve “Oluştur” düğmesine tıklayın.

    FLOWIN menüsündeki “Webhook'lar” bölümü
    FLOWIN menüsündeki “Webhook'lar” bölümü.
    İlk webhook'u oluşturma
    İlk webhook'u oluşturma.
  4. Kopyaladığınız adresi üstteki alana yapıştırın. “İstek gövdesi” alanına {"message":"<message-text>"} yazın ve “Oluştur” düğmesine tıklayın. Bu, gönderilecek verilerin şablonudur: FLOWIN, <message-text> yerine mesajın metnini yerleştirir; alıcı ise bu metni message alanında görür.

    Test isteğinin adresi ve gövdesi
    Test isteğinin adresi ve gövdesi.
  5. Oluşturduğunuz webhook'ta “Uygula” düğmesine tıklayın. İstediğiniz yönlendirmeyi işaretleyin ve “Kaydet” düğmesine tıklayın.

    Webhook'u yönlendirmeye bağlama
    Webhook'u yönlendirmeye bağlama.
    Webhook için yönlendirme seçimi
    Webhook için yönlendirme seçimi.
  6. Kaynak sohbete örneğin “Talep №1042: mobilya kataloğu istiyorum.” gibi bir test mesajı gönderin. webhook.site'a dönün: alınan ilk istek otomatik olarak açılır. “Request Content” bloğunda talebin metni message alanında görünür. Artık FLOWIN, her yeni mesajın metnini hedef sohbete yönlendirmeden önce belirtilen adrese otomatik olarak gönderecektir.

    Kaynak sohbetteki test talebi
    Kaynak sohbetteki test talebi.
    webhook.site'ta alınan talep metni
    webhook.site'ta alınan talep metni.

Webhook ayarları

Oluşturduğumuz webhook üzerinden ayarları inceleyelim: bunların nasıl değiştirildiğine ve her alanın ne anlama geldiğine bakalım.

Ayarlar nereden alınır?

Başka bir site veya uygulamayı bağlamak için onun belgelerini kullanın. Veri alma kuralları genellikle diğer programlarla etkileşimi açıklayan API bölümünde bulunur. Aşağıdaki alanları doldurmak için gereken adres, HTTP yöntemi ve veri biçimi burada belirtilir.

Webhook ayarları nasıl değiştirilir?

  1. “Webhook'lar” listesinde istediğiniz webhook'un “Değiştir” düğmesine tıklayın.

    Webhook ayarlarını açma
    Webhook ayarlarını açma.
  2. İstediğiniz alanları değiştirin ve “Kaydet” düğmesine tıklayın.

    Değiştirilen ayarları kaydetme
    Değiştirilen ayarları kaydetme.
    Açıklama, webhook ayarlarında kaydedildi
    Açıklama, webhook ayarlarında kaydedildi.

HTTP yöntemi

HTTP yöntemi, isteğin yapacağı işlemi belirler: POST verileri işlenmek üzere gönderir, GET veri talep eder, PUT ise verileri yenileriyle değiştirir. Varsayılan olarak testimize uygun olan POST seçilidir. Başka bir site veya uygulama için onun belgelerinde belirtilen yöntemi seçin.

Kullanılabilir HTTP yöntemleri
Kullanılabilir HTTP yöntemleri.

URL adresi

URL, internetteki adres anlamına gelir. Buraya, bağlanacak site veya uygulamadan alınan veri alma adresi yazılır. Örneğimizde bu adresi webhook.site sağladı.

İstek gövdesi

İstek gövdesi, gönderilecek verileri JSON biçiminde, “alan adı: değer” çiftleri olarak içerir. Hangi alanların bulunacağı, bağlanacak site veya uygulamanın gereksinimlerine bağlıdır.

Meta etiketleri, FLOWIN'in mesaj verileriyle değiştirdiği yer tutuculardır. Örneğin, <message-text> metinle, <author-name> ise gönderenin adıyla değiştirilir. Meta etiketlerinin listesi, alanın altındaki “meta etiketleri” bağlantısına tıklanarak da açılır.

Aşağıdaki listede kullanıcı, mesaj, sohbet ve konu numaraları, bunların Telegram'daki kimliklerini (ID) ifade eder.

Mesaj ve gönderen

  • Mesaj metni: <message-text>.
  • Mesaj tarihi: <message-date>.
  • Mesaj saati: <message-time>.
  • Gönderenin numarası: <author-id>.
  • Gönderenin adı: <author-name>.
  • Gönderenin profiline ait HTML bağlantısındaki adı: <author-name-link>.
  • Gönderenin hashtag olarak adı: <author-name-tag>.
  • Gönderenin kullanıcı adı: <author-username>.

Kaynak

  • Mesaj metni: <src-message-text>.
  • Mesaj numarası: <src-message-id>.
  • Mesaj bağlantısı: <src-message-link>.
  • Sohbet numarası: <src-chat-id>.
  • Sohbet adı: <src-chat-name>.
  • Sohbetin kullanıcı adı: <src-chat-username>.
  • Konu numarası: <src-topic-id>.
  • Konu adı: <src-topic-name>.

Hedef

  • Mesaj metni: <dst-message-text>.
  • Mesaj numarası: <dst-message-id>.
  • Mesaj bağlantısı: <dst-message-link>.
  • Sohbet numarası: <dst-chat-id>.
  • Sohbet adı: <dst-chat-name>.
  • Sohbetin kullanıcı adı: <dst-chat-username>.
  • Konu numarası: <dst-topic-id>.
  • Konu adı: <dst-topic-name>.

Hedefteki mesajın numarası ve bağlantısı, yönlendirmeden sonra oluşur. Bunları aktarmak için “İstek tetikleyicisi” alanında “Gönderdikten sonra” seçeneğini seçin.

Düğme tıklaması

  • Tıklayan kullanıcının numarası: <clicker-id>.
  • Tıklayan kullanıcının adı: <clicker-name>.
  • Düğme verileri: <clicker-data>.
  • Tıklama tarihi: <click-date>.
  • Tıklama saati: <click-time>.

Metin seçimi

  • Düzenli ifade, metin arama kuralını belirler. Örneğin, <regexp>(short|sell)</regexp> ifadesi, short veya sell ile ilk eşleşen metni yerleştirir.
  • Rastgele metin ifadesi <random>1|2|3|4|5</random> beş seçenekten birini yerleştirir. Etiketlerin arasına kendi seçeneklerinizi yazabilir ve bunları | simgesiyle ayırabilirsiniz.

İstek başlıkları

“İstek başlıkları”, alıcı için teknik bilgiler içerir. Örneğin, bir erişim anahtarı isteği kimin gönderdiğini doğrulamayı sağlar. Başlıklar JSON biçiminde belirtilir. Genellikle bu alanı değiştirmek gerekmez; gerekli değerler, bağlanacak site veya uygulamanın belgelerinden alınır.

İstek tetikleyicisi

“İstek tetikleyicisi”, webhook'un belirtilen adrese hangi olayda ve ne zaman istek göndereceğini belirler. Olay olarak şunlar seçilebilir:

  • “Gönderme” varsayılan olarak seçilidir. Webhook, yeni bir mesaj yönlendirilirken tetiklenir.
  • “Düzenleme”, kaynaktaki bir mesaj değişikliği işlenirken tetiklenir.
  • “Sabitleme”, kaynaktaki bir mesajın sabitlenmesi işlenirken tetiklenir.
  • “Silme”, kaynaktaki bir mesajın silinmesi işlenirken tetiklenir.
  • “Düğme tıklaması”, hedef sohbetteki geri çağırma (callback) düğmeleri için tetiklenir. Böyle bir düğme, tıklandığını bota bildirir ve kendisi için belirlenmiş verileri iletir. Bağlantı içeren sıradan bir düğme bu webhook'u tetiklemez.
İsteği tetikleyen olaylar
İsteği tetikleyen olaylar.

Gönderim zamanı, isteğin yönlendirmenin hangi aşamasında gönderileceğini belirler:

  • “İşlemeden önce”: istek, mesajın çevrilmesinden ve yapay zekâ (YZ) ile işlenmesinden önce gönderilir.
  • “İşledikten sonra”: istek, çeviri ve yapay zekâ ile işleme tamamlandıktan sonra gönderilir.
  • “Gönderdikten sonra”: istek, mesaj hedef sohbette başarıyla gönderildikten veya düzenlendikten sonra gönderilir.
İsteğin gönderim zamanı
İsteğin gönderim zamanı.

Kullanılabilir gönderim zamanları

Üç seçeneğin tamamı “Gönderme” ve “Düzenleme” olayları için kullanılabilir. “Sabitleme”, “Silme” ve “Düğme tıklaması” için “İşlemeden önce” kullanılır; başka bir zaman seçilemez.

Açıklama

“Açıklama”, size kolaylık sağlayan bir not alanıdır ve webhook'un çalışmasını etkilemez. Bu alan boş bırakılabilir.

Webhook ile yapılabilecek işlemler

Oluşturulan webhook'lar “Webhook'lar” listesinden yönetilebilir:

  • “Değiştir”, webhook'un temel ayarlarını açar.
  • “Diğer” menüsündeki “Çoğalt”, webhook ayarlarının bir kopyasını oluşturur.
  • “Diğer” menüsündeki “Proje seç”, webhook'u bir projeye ekler.
  • “Diğer” menüsündeki “Sil”, webhook'u siler.
Webhook ile yapılabilecek ek işlemler
Webhook ile yapılabilecek ek işlemler.

Ayrıca her webhook'un, uygulanacağı yönlendirmeleri seçmenizi sağlayan bir “Yönlendirmeler [N]” düğmesi vardır. N, seçili yönlendirmelerin sayısını belirtir. Henüz yönlendirme seçilmediyse bunun yerine “Uygula” düğmesi gösterilir.

Sık sorulan sorular

Basit bir ifadeyle webhook nedir?

Belirli bir olay gerçekleştiğinde verileri başka bir uygulamaya otomatik olarak aktarmanın bir yoludur. Örneğin, yeni bir mesaj yönlendirilirken FLOWIN, mesajın metnini bir HTTP isteğiyle belirttiğiniz adrese gönderir. Burada isteği FLOWIN gönderir; Telegram'ın setWebhook yöntemi ise diğer yönü yapılandırır: güncellemelerin Telegram'dan botu çalıştıran programa iletilmesini sağlar.

CRM'nin adresini belirtmek yeterli mi?

Hayır. CRM'nin belgelerinde belirtilen veri alma adresi, uygun HTTP yöntemi, JSON alanları ve erişim için gerekiyorsa başlıklar da gereklidir. CRM sitesinin normal adresi bu amaç için uygun değildir. FLOWIN isteği gönderir; talebin oluşturulması veya başka bir işlemin yapılması ise CRM'nin alınan verileri nasıl işlediğine bağlıdır. Alanların değerleri “Webhook ayarları” bölümünde açıklanmıştır.

Sıradan bir URL düğmesine tıklayarak webhook tetiklenebilir mi?

Hayır. Sıradan bir URL düğmesi bağlantıyı açar. “Düğme tıklaması” olayı için hedef sohbette bir geri çağırma (callback) düğmesi gerekir: bu düğme, tıklama verilerini bota iletir. Bu fark “İstek tetikleyicisi” bölümünde açıklanmıştır.

Haricî hizmetin verileri aldığını nasıl kontrol edebilirim?

Hayalî bir mesaj gönderin ve hizmet tarafında alınan isteği kontrol edin. webhook.site örneğinde talebin metni “Request Content” bloğunda görünür. Telegram'da yönlendirmenin başarılı olması tek başına haricî hizmetin verileri aldığını veya istenen işlemi yaptığını doğrulamaz. Kontrol için ad, telefon numarası veya başka kişisel veriler olmadan yalnızca metin yeterlidir.