PDA

Orijinalini görmek için tıklayınız : XenForo 2.3 Yenilikleri - Web kancaları ile iş akışlarını otomatikleştirin


Matsuro
06 Ekim 2024, 11:21
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:

[Only Registered Users Can See Links]

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:

[Only Registered Users Can See Links]

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.

[Only Registered Users Can See Links]

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:

[Only Registered Users Can See Links]

Web kancasının nasıl kodlandığını değiştirebilirsiniz. Varsayılan olarak bu application/json'dır ancak bunun yerine x-[Only Registered Users Can See Links] 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": "Welcome to the first in our Have you seen...? series for XenForo 3.0\n\ndQw4w9WgXcQ",
"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=\"[Only Registered Users Can See Links]\"\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": "[Only Registered Users Can See Links]",
"h": "[Only Registered Users Can See Links]",
"l": "[Only Registered Users Can See Links]",
"m": "[Only Registered Users Can See Links]",
"s": "[Only Registered Users Can See Links]"
},
"is_staff": true,
"location": "UK",
"message_count": 33705,
"profile_banner_urls": {
"l": "[Only Registered Users Can See Links]",
"m": "[Only Registered Users Can See Links]"
},
"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": "[Only Registered Users Can See Links]",
"vote_score": 332
},
"user_id": 11388,
"username": "Chris D",
"view_url": "[Only Registered Users Can See Links]",
"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": "[Only Registered Users Can See Links]"
},
"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": "[Only Registered Users Can See Links]",
"h": "[Only Registered Users Can See Links]",
"l": "[Only Registered Users Can See Links]",
"m": "[Only Registered Users Can See Links]",
"s": "[Only Registered Users Can See Links]"
},
"is_staff": true,
"location": "UK",
"message_count": 33705,
"profile_banner_urls": {
"l": "[Only Registered Users Can See Links]",
"m": "[Only Registered Users Can See Links]"
},
"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": "[Only Registered Users Can See Links]",
"vote_score": 332
},
"user_id": 11388,
"username": "Chris D",
"view_count": 0,
"view_url": "[Only Registered Users Can See Links]"

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:

[Only Registered Users Can See Links]

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 ([Only Registered Users Can See Links])