Slack'i Shopify Flow'a nasıl bağlayabilirsiniz?

Slack'i Shopify Flow'a nasıl bağlayabilirsiniz?

Sayfayı kopyala

Slack’i, imzalı bir webhook tetikleyicisiyle Shopify Flow’a bağlayın. Kurulum adımları, HMAC doğrulaması ve sorun giderme ipuçları da dahildir.

Slack, uygulamanıza gönderdiği her isteği (slash komutları, etkileşimli mesajlar ve Events API gönderimleri) uygulamanızın imzalama gizli anahtarıyla imzalar. Workflow Webhooks, bu çağrıyı bir Shopify Flow tetikleyicisine dönüştürür; böylece mağazanız buna tepki verebilir: bir müşteriye etiket ekleyebilir, sipariş notu ekleyebilir, dahili bir e-posta gönderebilir, bir meta alanı güncelleyebilir - kısacası Shopify Flow'un yapabileceği her şeyi yapabilir.

Bu kılavuz, tüm süreci - Slack’in gönderim yapması, Workflow Webhooks’un alması ve doğrulaması, Shopify Flow’un harekete geçmesi - her istekte Slack’in HMAC imzası kontrol edilerek kurar; böylece iş akışınızı yalnızca Slack başlatabilir.

Neler yapabileceğiniz

  • Ekibinizin, kimseye yönetici erişimi vermeden, Slack'ten bir eğik çizgi komutuyla bir Shopify Flow iş akışını başlatmasına izin verin.
  • Slack'te bir şeyi onaylayın ve Shopify Flow'un onaylanan siparişi veya müşteriyi etiketlemesini sağlayın.
  • Bir Slack kısayolunu mağaza eylemine dönüştürün - etiket ekleyin, e-posta gönderin, meta alanı güncelleyin.

Gönderilebilecek tipik olaylar: /restock gibi bir slash komutu, etkileşimli bir mesajdaki bir düğmeye basılması, bir Events API olayı.

Başlamadan önce

  • Shopify mağazanıza kurulan Workflow Webhooks Webhook'ları.
  • Shopify Flow, Shopify Uygulama Mağazasından ücretsiz olarak indirilip kuruldu.
  • Webhook oluşturma iznine sahip bir Slack hesabı.

1. Adım - Workflow Webhooks'ta webhook'u oluşturun

  1. Workflow Webhooks'u açın -> Webhooks -> Webhook oluştur seçeneğine tıklayın ve Shopify Flow'da kolayca tanıyabileceğiniz bir ad verin; örneğin Slack events gibi.
  2. Kimlik Doğrulama bölümünden HMAC'yi seçin.
  3. Signature provider (İmza sağlayıcısı) bölümünden Slack’i seçin. Uygulama, başlığı, algoritmayı, imzalı yükü ve tekrar oynatma aralığını sizin için otomatik olarak doldurur; ayarlamanız gereken başka bir şey yoktur.
  4. Şimdilik gizli alanı boş bırakın ve Kaydet'e tıklayın. Sayfada gösterilen webhook URL'sini kopyalayın.

Diğer kimlik doğrulama modları için Kimlik Doğrulama’a, hangi alanların Shopify Flow’a aktarılacağını seçmek için ise Yük haritalama ve Shopify Flow değişkenleri’a bakın.

2. Adım - Slack'e uç noktayı ekleyin

Slack uygulamanızın yapılandırmasında, bu URL’yi slash komutu, etkileşim veya Etkinlikler API’si için İstek URL’si olarak ekleyin ve Temel Bilgiler -> Uygulama Kimlik Bilgileri bölümünden İmzalama Gizli Anahtarını kopyalayın.

Slack oturum açma gizli anahtarınızı nasıl bulabilirsiniz?

Slack uygulamasının İmza Gizli Anahtarı (Temel Bilgiler -> Uygulama Kimlik Bilgileri).

Slack'in webhook imzalarıyla ilgili kendi belgeleri, hesabınız için tam metni ve ekran görüntülerini içeriyor.

Bu gizli anahtarı, Workflow Webhooks bölümündeki webhook’un “Secret” alanına yapıştırın ve kaydedin. O andan itibaren her Slack iletisi, Shopify Flow’a ulaşmadan önce doğrulanır.

Bu kontrolün amacı

Ne Değer
İmza başlığı X-Slack-Signature
İmzanın bulunduğu yer v0= önekinden sonraki başlık değeri
Neyin imzalandığı v0:{timestamp}:{body}
İmza HMAC-SHA256, onaltılık kodlanmış
Zaman damgası X-Slack-Request-Timestamp başlığı, Unix saniyesi cinsinden
Tekrar oynatma koruması İmzalı zaman damgası şu andan 5 dakikadan daha uzak olan istekler reddedilir
Sır Düz metin olarak kullanılır. Gönderenin gösterdiği şekilde aynen yapıştırın.

İmzalı yükte, {body}, bayt bayt ham istek gövdesi; {timestamp} ise yukarıdaki zaman damgasıdır.

Bu koşullardan herhangi birini karşılamayan bir istek, 401 hatasıyla reddedilir, Geçmiş ve sorun giderme bölümüne kaydedilir ve hiçbir zaman bir iş akışını başlatmaz.

3. Adım - Shopify Flow iş akışını oluşturun

  1. Shopify Flow'da bir iş akışı oluşturun ve Workflow Webhooks tetikleyicisini seçin.
  2. Olayları Kaydet seçeneğine basın, ardından Slack'ten bir test olayı gönderin (veya Workflow Webhooks bölümündeki Test Gönder seçeneğini kullanın), böylece Shopify Flow verilerinizin yapısını öğrenebilir.
  3. Sahip olduğunuz her webhook aynı Shopify Flow tetikleyicisini çalıştırır; bu nedenle, bu iş akışını yalnızca Slack ile sınırlı tutmak için webhook kimliğine ilişkin bir ilk koşul ekleyin. Kimlik, webhook sayfasında gösterilir.
  4. İşlemlerinizi ekleyin - bir müşteriyi etiketleyin, bir not ekleyin, şirket içi bir e-posta gönderin, bir meta alanı güncelleyin.
Shopify Flow
Shopify Flow'da “Bir tetikleyici seç” seçeneğini seçin, Workflow Webhooks bölümünü açın ve “Webhook Tetikleyicisi”ni seçin.
Bir Shopify Flow koşulu: Webhook kimliği, bir webhook’un kimliğine eşittir
Her iş akışının ilk adımı: webhook kimliğine ilişkin bir koşul; böylece iş akışı yalnızca bu webhook için çalıştırılır.
Tamamlanmış iş akışı: Webhook Tetikleyicisi, webhook kimliğine ilişkin bir koşul, ardından “Doğru” dalında dahili e-posta gönderme
Tamamlanmış iş akışı: tetikleyici, webhook kimliğine dayalı koşul ve ardından “True” dalında gerçekleştirilecek eyleminiz.

4. Adım - Uçtan uca test edin

Slack'te gerçek bir olayı tetikleyin. Workflow Webhooks → History bölümünde, Success durumuna sahip bir çağrı görmelisiniz. İmza yanlışsa, bunun yerine nedeni belirtilen bir hata kaydı görürsünüz; İmzalı webhook'ların doğrulanması, hangi adımın başarısız olduğunu tam olarak gösteren imza denetleyicisini açıklar.

Tarih bölümünde, istek başlıkları, veri yükü, durum, süre ve tanımlayıcılarıyla birlikte bir çağrı açıldı
Tarih bölümünde gerçekleştirilmiş bir olay: “Başarılı” durumu, Shopify Flow’un bunu kabul ettiği anlamına gelir.
İmza eşleşmiyor

Şu sırayla: gizli anahtar (en yaygın neden - fazladan bir boşluk ya da yanlış ortamdan alınan bir anahtar), gönderenin farklı bir uç noktanın gizli anahtarını kullanıp kullanmadığı ve Slack ile uygulama arasında gövde metnini yeniden yazan bir unsur olup olmadığı. İmzalar ham baytları kapsadığından, JSON’u yeniden biçimlendiren bir proxy bunları bozar. Webhook sayfasındaki imza test aracı, imzalanmış metnin tam halini gösterir.

Her istekte 401 hatası alıyorum

Webhook’un kimlik doğrulama yönteminin HMAC olarak ayarlandığını, Slack sağlayıcısının seçili olduğunu, gizli anahtarın girildiğini ve Slack’in, sondaki kod da dahil olmak üzere, uygulamanın gösterdiği URL’ye tam olarak bu şekilde gönderim yaptığını kontrol edin.

Geçmiş'te hiçbir şey görünmüyor

İstek hiç ulaşmadı. Slack'teki URL'yi tekrar kontrol edin ve Slack'in kendi teslimat günlüğüne bakarak aldığı yanıtı inceleyin. 404 kodu, webhook'un yanlış veya silinmiş olduğunu; 429 kodu ise planınızın çağrı sınırını aştığınızı gösterir - bkz. Planlar ve kullanım.

İş akışı yanlış olaylar için çalışıyor

Mağazanızdaki her webhook, aynı Shopify Flow tetikleyicisini çalıştırır. İş akışının ilk adımı olarak **webhook **kimliğine bir koşul ekleyin ya da Slack’ten gönderdiğiniz olayları daraltın.

İstekler, "zaman damgası tolerans aralığı dışında" hatasıyla başarısız oluyor

Slack, zaman damgası ekler ve uygulama 5 dakikadan daha eski olan her şeyi reddeder. Bu durum genellikle gönderen tarafta bir saat sorunundan kaynaklanır ya da Slack’in orijinal zaman damgasıyla çok daha sonra yeniden denediği bir iletimden kaynaklanır. Aynı orijinal isteğe ait yeniden denemeler kabul edilmez; Slack’ten yeni bir olay göndermesini isteyin.

İlgili