Neler yeni

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

  • Forumdan daha fazla yararlanmak için, profilinizi telefon numaranız 📱 ile doğrulayın ve daha ayrıcalıklı olun 😉
    Daha fazla bilgi!

XenForo 2.3 Yenilikleri - Web kancaları ile iş akışlarını otomatikleştirin

eTiKeT™

value="{XGT}"
Yönetici
XGT Master
SMS onaylı
Katılım
4 Ara 2016
Mesajlar
9,080
Çözümler
1,037
XenForo 2.3 Yenilikleri - Web kancaları ile iş akışlarını otomatikleştirin

Web kancalarını daha önce duymamış olanlar için, belirli olaylar meydana geldiğinde bir uygulamanın veya hizmetin diğerine bilgi göndermesine izin veren güçlü bir yardımcı programdır. Bunlar, bir ürün veya hizmete erişim için ödeme yapmak gibi günlük eylemler veya forumunuzdan yeni bir Konunun Discord'a otomatik olarak gönderilmesi gibi daha spesifik uygulamalar olabilir.

Geliştirici türünde bir kişi olmasanız bile, muhtemelen farkında olmadan bir noktada web kancalarını bir şekilde kullanmış veya bunlarla karşılaşmışsınızdır.

Burada XenForo'da, web kancalarını kullanarak iş akışımızın çoğunu otomatikleştiriyoruz, bunlardan bazıları açık olabilir, diğerleri daha az olabilir. Örneğin, bir hata raporunu her düzelttiğimizde GitHub'dan bir web kancası alıyoruz - bu, hata raporlarını otomatik olarak düzeltilmiş olarak işaretleyen şeydir. Başka bir örnek olarak, birisi her hata raporu yayınladığında veya içerik bildirdiğinde Slack'e bir web kancası gönderiyoruz.

Genel bir kavram olarak web kancaları, sonsuz sayıda kullanım durumu ile çok esnek bir araç olabilir, forumunuzda belirli olaylar meydana geldiğinde web kancalarını başka bir sisteme gönderme yeteneği, XenForo 2.3 ile başlayarak yararlanabileceğiniz bir şey olacaktır.

Web kancaları yüzeyde geliştiricilere yönelik bir şey gibi görünse de, web kancalarını alabilen ve eylemleri tetikleyebilen bir dizi harika üçüncü taraf otomasyon hizmeti vardır. IFTTT, Make ve Zapier gibi bu hizmetler, halihazırda mevcut olan binlerce entegrasyonla web sitenizdeki uygulamaları otomatikleştirmek ve entegre etmek için kullanışlı ve kullanıcı dostu bir yol sunar.

Gelecekteki bir sürüm için bu hizmetlerden bir veya daha fazlasıyla daha yakın entegrasyon düşünülmektedir, ancak yukarıdaki örneklerin üçü de web kancalarını tetikleyici olarak kabul etmektedir.
 

XenForo'yu web kancaları göndermek için yapılandırma​


Aşağıdaki kılavuzda, belirli bir olayda gönderilecek bir web kancası kurmak için atabileceğiniz adımları göstereceğiz ve bunu bir web sitesi aracılığıyla almayı göstereceğiz, Webhook.site - Test, process and transform emails and HTTP requests.

Webhook'ları yönetici kontrol panelinizde Kurulum > Webhook'lar altında bulabilirsiniz. İlk web kancanızı oluşturmak için "Web kancası ekle" seçeneğine tıklayacaksınız. Ekleme sayfası kabaca üç bölüme ayrılmıştır. İlki, başlık ve hedef URL gibi önemli kısımları tanımlamanızı sağlar:

hys_5_setup1.png

Hedef URL, web kancanızı alacak olan komut dosyasının/hizmetin URL'sidir.

Gizli, web kancasını gönderirken XF-Webhook-Secret istek başlığında gönderilen bir değerdir. Bu isteğe bağlıdır, ancak kendi web kancası alıcı komut dosyanızda kullanmayı seçerseniz, isteğin doğru secret içerdiğinden ve kimliğinin doğrulandığından emin olmak için kullanabilirsiniz.

Biraz aşağı kaydırdığınızda içerik türlerinin bir listesini görürsünüz:

hys_5_setup2.png

Not: Buradaki etkinlik listesi henüz son halini almamıştır ve şu an ile nihai sürüm arasında daha fazla etkinlik eklenecektir.


Burası, web kancalarını tetiklemek istediğiniz farklı içerik türlerinde bir veya daha fazla olay belirleyebileceğiniz yerdir. Bir içerik türünü genişlettiğinizde, birkaç seçenekle karşılaşırsınız; öncelikle web kancanızı hangi olayların tetiklemesini istediğinize karar vermeniz gerekir.

Her içerik türü için hiçbir olay göndermeyebilir, tüm olayları gönderebilir ya da yalnızca belirli olaylarda gönderebilirsiniz.

hys_5_setup3.png

Bu örnekte, yalnızca thread_insert üzerine gönderim yapacağız.

Bazı içerik türleri ek filtreleme kriterleri belirlemenize de izin verir. Örneğin, yalnızca belirli bir forumda yayınlanan konularla ilgilenebilirsiniz.

Üçüncü bölüm, kaydetmeden önce değiştirebileceğiniz son birkaç ayardır:

hys_5_setup4.png

Web kancasının nasıl kodlandığını değiştirebilirsiniz. Varsayılan olarak bu application/json'dır ancak bunun yerine x-www-form-urlencoded kullanmak da isteyebilirsiniz.

Gerekirse burada "SSL doğrulamasını etkinleştir" seçeneğini kapatabilirsiniz, ancak çoğunlukla belirli bir nedeniniz olmadıkça bunu etkin bırakacaksınız.

Son olarak, web kancasını etkin / etkin değil olarak ayarlayabilirsiniz.

Bu kaydedildikten sonra, geriye kalan tek şey bir web kancasını tetiklemek için yeni bir konu göndermek ve ardından hangi verileri gönderdiğimizi görmek için webhook.site'yi kullanmaktır... işte burada!

JSON:
{
  "content_type": "thread",
  "event": "insert",
  "content_id": 216847,
  "data": {
    "custom_fields": {},
    "discussion_open": true,
    "discussion_state": "visible",
    "discussion_type": "article",
    "first_post_id": 1649025,
    "first_post_reaction_score": 0,
    "FirstPost": {
      "attach_count": 0,
      "is_first_post": true,
      "is_last_post": true,
      "is_reacted_to": false,
      "last_edit_date": 0,
      "message": "[COLOR=rgb(224, 224, 224)]Welcome to the first in our Have you seen...? series for XenForo 3.0\n\n[MEDIA=youtube]dQw4w9WgXcQ[/MEDIA][/COLOR]",
      "message_parsed": "<span style=\"color: rgb(224, 224, 224)\">Welcome to the first in our Have you seen...? series for XenForo 3.0<br />\n<br />\n<div data-template-name=\"_media_site_embed_youtube\" class=\"bbMediaWrapper\" data-media-site-id=\"youtube\" data-media-key=\"dQw4w9WgXcQ\">\n\t<div class=\"bbMediaWrapper-inner\">\n\t\t<iframe src=\"https://www.youtube.com/embed/dQw4w9WgXcQ?wmode=opaque\"\n\t\t\t\tloading=\"lazy\"\n\t\t\t\twidth=\"560\" height=\"315\"\n\t\t\t\tframeborder=\"0\" allowfullscreen=\"true\"></iframe>\n\t</div>\n</div></span>",
      "message_state": "visible",
      "position": 0,
      "post_date": 1697446950,
      "post_id": 1649025,
      "reaction_score": 0,
      "thread_id": 216847,
      "User": {
        "avatar_urls": {
          "o": "https://xenforo.com/community/data/avatars/o/11/11388.jpg?1696499135",
          "h": "https://xenforo.com/community/data/avatars/h/11/11388.jpg?1696499135",
          "l": "https://xenforo.com/community/data/avatars/l/11/11388.jpg?1696499135",
          "m": "https://xenforo.com/community/data/avatars/m/11/11388.jpg?1696499135",
          "s": "https://xenforo.com/community/data/avatars/s/11/11388.jpg?1696499135"
        },
        "is_staff": true,
        "location": "UK",
        "message_count": 33705,
        "profile_banner_urls": {
          "l": "https://xenforo.com/community/data/profile_banners/l/11/11388.jpg?1696466377",
          "m": "https://xenforo.com/community/data/profile_banners/m/11/11388.jpg?1696466377"
        },
        "question_solution_count": 98,
        "reaction_score": 40385,
        "register_date": 1318189653,
        "signature": "",
        "trophy_points": 823,
        "user_id": 11388,
        "user_title": true,
        "username": "Chris D",
        "view_url": "https://xenforo.com/community/index.php?members/chris-d.11388/",
        "vote_score": 332
      },
      "user_id": 11388,
      "username": "Chris D",
      "view_url": "https://xenforo.com/community/index.php?posts/1649025/",
      "warning_message": ""
    },
    "Forum": {
      "breadcrumbs": [
        {
          "node_id": 1,
          "title": "Official forums",
          "node_type_id": "Category"
        }
      ],
      "description": "This forum spotlights some of XenForo's interesting features. Spotlights on features in upcoming releases will be posted here.",
      "display_in_list": true,
      "display_order": 200,
      "image_url": "",
      "node_id": 3,
      "node_name": "have-you-seen",
      "node_type_id": "Forum",
      "parent_node_id": 1,
      "title": "Have you seen...?",
      "type_data": {
        "allow_posting": true,
        "article": {
          "display_style": "preview",
          "expanded_snippet": 250,
          "expanded_per_page": 13
        },
        "can_create_thread": true,
        "can_upload_attachment": true,
        "discussion_count": 135,
        "forum_type_id": "article",
        "is_unread": true,
        "last_post_date": 1697446950,
        "last_post_id": 1649025,
        "last_post_username": "Chris D",
        "last_thread_id": 216847,
        "last_thread_prefix_id": 0,
        "last_thread_title": "What's new in XenForo 3.0?",
        "message_count": 18398,
        "min_tags": 0,
        "require_prefix": false
      },
      "view_url": "https://xenforo.com/community/index.php?forums/have-you-seen/"
    },
    "highlighted_post_ids": [],
    "is_first_post_pinned": true,
    "is_search_engine_indexable": true,
    "last_post_date": 1697446950,
    "last_post_id": 1649025,
    "last_post_user_id": 11388,
    "last_post_username": "Chris D",
    "node_id": 3,
    "post_date": 1697446950,
    "prefix_id": 0,
    "reply_count": 0,
    "sticky": false,
    "tags": [],
    "thread_id": 216847,
    "title": "What's new in XenForo 3.0?",
    "User": {
      "avatar_urls": {
        "o": "https://xenforo.com/community/data/avatars/o/11/11388.jpg?1696499135",
        "h": "https://xenforo.com/community/data/avatars/h/11/11388.jpg?1696499135",
        "l": "https://xenforo.com/community/data/avatars/l/11/11388.jpg?1696499135",
        "m": "https://xenforo.com/community/data/avatars/m/11/11388.jpg?1696499135",
        "s": "https://xenforo.com/community/data/avatars/s/11/11388.jpg?1696499135"
      },
      "is_staff": true,
      "location": "UK",
      "message_count": 33705,
      "profile_banner_urls": {
        "l": "https://xenforo.com/community/data/profile_banners/l/11/11388.jpg?1696466377",
        "m": "https://xenforo.com/community/data/profile_banners/m/11/11388.jpg?1696466377"
      },
      "question_solution_count": 98,
      "reaction_score": 40385,
      "register_date": 1318189653,
      "signature": "",
      "trophy_points": 823,
      "user_id": 11388,
      "user_title": true,
      "username": "Chris D",
      "view_url": "https://xenforo.com/community/index.php?members/chris-d.11388/",
      "vote_score": 332
    },
    "user_id": 11388,
    "username": "Chris D",
    "view_count": 0,
    "view_url": "https://xenforo.com/community/index.php?threads/whats-new-in-xenforo-3-0.216847/"
  }
}

REST API ile oynamış olan herkes buradaki webhook formatını biraz tanıdık bulabilir ve bunun çok iyi bir nedeni vardır: perde arkasında, webhook sonuçlarının oluşturulması API yanıtlarını oluşturmak için kullandığımız kodun aynısıdır. İşlenen sonucun türüne bağlı olarak belirli anahtarları dahil etmek/hariç tutmak için sonuçlara ince ayar yapabilirsiniz, ancak çoğunlukla yanıtlar aynı olacaktır.

Web kancası sonuçlarının en üst seviyesinde content_type, event ve content_id anahtarlarını göreceksiniz, içerikle ilgili geri kalan veriler ise data anahtarının altındadır.


Web kancası isteği ayrıca başlıklarda çeşitli bilgiler içerir:
hys_5_webhook.png

Burada webhook gizli değerini ve dilerseniz tüm içeriği ayrıştırmadan önce kullanabileceğiniz xf-webhook-event ve xf-content-type gibi birkaç ek başlığı görebilirsiniz.

Bunların hepsi çok güzel, ancak şimdi bunu gerçek dünyada nasıl kullanabileceğinize bir göz atalım.


Kaynak;

 
Son düzenleme:

Gerçek dünyadan bir web kancası örneği​


Bu örnekte Make'i kullanacağız ancak benzer sonuçları IFTTT ve Zapier ile de elde edebilirsiniz.

Şimdi bir duyuru forumunda yeni bir konu oluşturulduğunda Discord sunucu kanalına otomatik olarak bir mesaj göndereceğiz.

Make senaryo düzenleyicisinde, "Ekle" düğmesine tıklayacağız, "Webhooks" uygulamasını bulacağız ve ardından "Özel webhook" tetikleyicisini seçeceğiz:


1697451399331.png 1697451543178.png

Daha sonra "Create webhook" seçeneğine tıklıyoruz ve bazı temel ayrıntıları dolduruyoruz. Burada bir güvenlik önlemi olarak IP kısıtlamaları belirleyebilirsiniz:


hys_5_make_create_webhook.png

Burada bir IP adresi belirtmek yerine, "Gelişmiş ayarları göster" seçeneğine tıklayalım ve "İstek başlıklarını al" seçeneğini işaretleyelim. Bu, istekle birlikte gönderdiğimiz web kancası secret doğru olduğunu doğrulamamızı sağlayacaktır.

Bu daha sonra size webhook adresinizi verecektir. Hedef URL'yi yeni Make webhook URL'sine yönlendirmek için mevcut webhook'umuzu değiştireceğiz ve "Duyurular" forumuna bir şey gönderildiğinde thread_insert olayını kullanmak için filtreleri güncelleyeceğiz.

Make'den en iyi şekilde yararlanmak için veri yapınızı anlamak ister. Bu durumda bunu yapmanın en kolay yolu bir test konusu oluşturmak ya da yeni konunun oluşturulmasını beklemektir.

Web kancası gizli filtresini yapılandırmadan önce, şimdi yeni bir modül eklemek için "Ekle" ye tıklayacağız, "Discord" u arayacağız ve "Mesaj gönder" e tıklayacağız.

hys_5_make_discord_create.png

Artık Discord sunucunuzu yapılandırabileceğiniz ve ona bağlanabileceğiniz yer burasıdır. Basitçe "Bağlantı oluştur "a tıklayın, bir isim verin ve hedef Discord sunucusunu seçerek Make hesabınızı Discord hesabınıza bağlanmak üzere yetkilendirmek için giriş işlemini tamamlayın.

hys_5_make_discord_auth.png


Yetkilendirildikten sonra Make (veya Integromat) botu sunucunuza eklenecektir. Daha sonra web kancası alındığında tam olarak ne olmasını istediğinizi yapılandırmak için Make'e geri dönebilirsiniz.

"Mesajı bir kanala gönder" seçeneğinin seçili olduğundan emin olduktan sonra, artık kanal adınızı gelen konu için hedef olarak belirleyebilirsiniz. Ayrıca "Mesaj" alanını gönderilmesini istediğiniz şeyle doldurmanız gerekir.

İsterseniz bu tamamen statik bir mesaj olabilir, ancak mesajınız için gelen web kancasından gelen verileri kullanabilecekken neden bunu yapasınız?

hys_5_make_discord_message.png

"Tamam "a tıkladığınızda yapmanız gereken tek şey budur. Ama şimdi filtrelere hızlıca bir göz atalım. Bunu yapmak için iki modül, web kancanız ve Discord modülü arasındaki simgeye tıklamanız yeterlidir. Bu, "Bir filtre ayarlamanıza" olanak tanır.


hys_5_make_filter_webhook_secret.png

Daha önce ayarladığımız web kancası sırrını kullanacağız ve xf-webhook-secret başlığının buna eşit olması gerektiğini söyleyeceğiz. Buraya bir sürü başka filtre ve koşul da ekleyebilirsiniz. XenForo içinde forum gibi belirli koşulları belirleyebilseniz de, bu filtreleri Make'in kendi içinde kolayca ayarlayabilirsiniz.

Ve geriye kalan tek şey, konuların doğrudan Discord'unuza gönderilmeye başlamasını beklemektir:

hys_5_make_discord_rick_roll.png
 
Son düzenleme:
Eklentileri artık panelden güncelleyebilecek miyiz :rolleyes:

Türkçeleştirme için teşekkürler abi
 

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.