Jak połączyć Slack zShopify Flow

Jak połączyć Slack zShopify Flow

Skopiuj stronę

Połącz Slack z Shopify Flow przez podpisany webhook i uruchamiaj przepływy poleceniami Slacka. Konfiguracja, weryfikacja HMAC i rozwiązywanie problemów.

Slack podpisuje każde żądanie wysyłane do Państwa aplikacji - polecenia ze znakiem ukośnika, wiadomości interaktywne oraz powiadomienia z interfejsu API zdarzeń - przy użyciu klucza podpisu Państwa aplikacji. Workflow Webhooks przekształca to wywołanie w wyzwalacz Shopify Flow, dzięki czemu Państwa sklep może na nie zareagować: oznaczyć klienta, dodać adnotację do zamówienia, wysłać wewnętrzną wiadomość e-mail, zaktualizować metapole - czyli wykonać każdą czynność, do której zdolny jest Shopify Flow.

W niniejszym przewodniku opisano cały proces - Slack wysyła dane, usługa Workflow Webhooks je odbiera i weryfikuje, a Shopify Flow wykonuje odpowiednie działania - przy czym w każdym żądaniu sprawdzany jest podpis HMAC serwisu Slack, dzięki czemu wyłącznie Slack może uruchomić Państwa przepływ pracy.

Co można zbudować

  • Umożliwcie Państwo swojemu zespołowi uruchamianie przepływu pracy w Shopify Flow ze Slacka za pomocą polecenia ze znakiem ukośnika, bez przyznawania nikomu uprawnień administratora.
  • Zatwierdź coś w Slacku, a usługa Shopify Flow oznaczy zatwierdzone zamówienie lub klienta.
  • Przekształć skrót w Slacku w akcję w sklepie - dodaj tag, wyślij wiadomość e-mail, zaktualizuj metapole.

Typowe zdarzenia, które można wysyłać: polecenie ze znakiem ukośnika, takie jak /restock, naciśnięcie przycisku w wiadomości interaktywnej, zdarzenie z interfejsu API zdarzeń.

Zanim zaczną Państwo

  • Webhooki Workflow Webhooks zainstalowane w Państwa sklepie Shopify.
  • Zainstalowano aplikację Shopify Flow, którą można pobrać bezpłatnie ze sklepu Shopify App Store.
  • Konto w serwisie Slack z uprawnieniami do tworzenia webhooków.

Krok 1 - Utwórz webhook w sekcji Workflow Webhooks

  1. Proszę otworzyć sekcję Workflow Webhooks → Webhooks → Utwórz webhook i nadać mu nazwę, którą będą Państwo w stanie rozpoznać w Shopify Flow, na przykład Slack events.
  2. W sekcji Uwierzytelnianie proszę wybrać opcję HMAC.
  3. W sekcji Dostawca podpisu proszę wybrać Slack. Aplikacja automatycznie wypełni pola dotyczące nagłówka, algorytmu, podpisanej treści oraz okna odtworzenia - nie ma potrzeby konfigurowania niczego więcej.
  4. Na razie proszę pozostawić pole „secret” puste i kliknąć Zapisz. Proszę skopiować adres URL webhooka wyświetlony na stronie.

Informacje na temat pozostałych trybów uwierzytelniania można znaleźć w sekcji Uwierzytelnianie, a informacje dotyczące wyboru pól, które mają zostać przesłane do Shopify Flow - w sekcji Mapowanie danych użytkowych i zmienne w Shopify Flow.

Krok 2 - Dodaj punkt końcowy w aplikacji Slack

W konfiguracji aplikacji Slack proszę dodać ten adres URL jako adres URL żądania dla polecenia ze znakiem ukośnika, funkcji interaktywnych lub interfejsu API zdarzeń, a następnie skopiować klucz podpisywania z sekcji Informacje podstawowe → Dane uwierzytelniające aplikacji.

Jak znaleźć swój sekretny klucz do logowania w serwisie Slack

Sekret podpisywania aplikacji Slack (Informacje podstawowe → Dane uwierzytelniające aplikacji).

W dokumentacji serwisu Slack dotyczącej podpisów webhooków znajdą Państwo dokładne sformułowania oraz zrzuty ekranu dotyczące Państwa konta.

Wklej ten klucz tajny w polu Secret (Klucz tajny) webhooka w sekcji Workflow Webhooks (Webhooki przepływu pracy) i zapisz zmiany. Od tego momentu każda wiadomość dostarczana do Slacka będzie weryfikowana, zanim dotrze do Shopify Flow.

Co to sprawdza

Co Wartość
Nagłówek podpisu X-Slack-Signature
Miejsce umieszczenia podpisu Wartość nagłówka, po przedrostku v0=
Co zostało podpisane v0:{timestamp}:{body}
Podpis HMAC-SHA256, zakodowany w systemie szesnastkowym
Sygnatura czasowa Nagłówek X-Slack-Request-Timestamp, wyrażony w sekundach systemu Unix
Ochrona przed ponownym odtworzeniem Żądania, których podpisany znacznik czasu odbiega od chwili obecnej o ponad 5 minut, są odrzucane
Sekret Należy użyć jako zwykły tekst. Proszę wkleić go dokładnie tak, jak przedstawił go nadawca

W podpisanej treści {body} stanowi surową treść żądania, bajt po bajcie, a {timestamp} to powyższy znacznik czasu.

Żądanie, które nie spełnia któregokolwiek z tych warunków, jest odrzucane z kodem błędu 401, rejestrowane w sekcji Historia i rozwiązywanie problemów i nigdy nie uruchamia przepływu pracy.

Krok 3 - Utwórz proces w Shopify Flow

  1. W Shopify Flow proszę utworzyć przepływ pracy i wybrać wyzwalacz Workflow Webhooks.
  2. Proszę kliknąć opcję Rejestruj zdarzenia, a następnie wysłać zdarzenie testowe ze Slacka (lub skorzystać z opcji Wyślij test w sekcji Workflow Webhooks), aby Shopify Flow rozpoznał strukturę Państwa danych.
  3. Każdy posiadany przez Państwa webhook uruchamia ten sam wyzwalacz w Shopify Flow, dlatego proszę dodać pierwszy warunek oparty na identyfikatorze webhooka, aby ten przepływ pracy dotyczył wyłącznie serwisu Slack. Identyfikator ten jest widoczny na stronie webhooka.
  4. Proszę dodać swoje działania - oznaczyć klienta, dodać notatkę, wysłać wewnętrzną wiadomość e-mail, zaktualizować metapole.
Shopify Flow
W Shopify Flow wybierz opcję „Wybierz wyzwalacz”, otwórz sekcję Workflow Webhooks i wybierz opcję „Wyzwalacz webhook”.
Warunek w Shopify Flow: identyfikator webhooka jest równy identyfikatorowi jednego z webhooków
Pierwszy krok każdego przepływu pracy: warunek dotyczący identyfikatora webhooka, dzięki czemu przepływ pracy uruchamia się wyłącznie dla tego webhooka.
Gotowy przebieg procesu: wyzwalacz webhooka, warunek oparty na identyfikatorze webhooka, a następnie wysłanie wewnętrznej wiadomości e-mail w gałęzi „True”
Gotowy przepływ pracy: wyzwalacz, warunek oparty na identyfikatorze webhooka, a następnie Państwa akcja w gałęzi „True”.

Krok 4 - Przeprowadź test od początku do końca

Wywołaj rzeczywiste zdarzenie w serwisie Slack. W sekcji Workflow Webhooks → Historia powinno pojawić się wywołanie o statusie Success. Jeśli podpis był nieprawidłowy, pojawi się zamiast tego wpis o niepowodzeniu wraz z podaną przyczyną, a Weryfikacja podpisanych webhooków zawiera wyjaśnienie dotyczące narzędzia do weryfikacji podpisu, które wskazuje dokładnie, który etap zakończył się niepowodzeniem.

Jedno wywołanie otwarte w sekcji „Historia” wraz z nagłówkami żądania, treścią, statusem, czasem trwania i identyfikatorami
Zrealizowane zdarzenie w module „Historia”: status „Powodzenie” oznacza, że Shopify Flow je zaakceptowało.
Podpis nie jest zgodny

W następującej kolejności: klucz tajny (najczęstsza przyczyna - dodatkowa spacja lub klucz z niewłaściwego środowiska), czy nadawca korzysta z klucza tajnego innego punktu końcowego oraz czy coś pomiędzy Slackiem a aplikacją zmienia treść wiadomości. Podpisy obejmują surowe bajty, więc serwer proxy, który zmienia format JSON, powoduje ich uszkodzenie. Narzędzie do sprawdzania podpisów na stronie webhooka wyświetla dokładny tekst, który został podpisany.

Przy każdym żądaniu otrzymuję kod błędu 401

Proszę sprawdzić, czy w ustawieniach uwierzytelniania webhooka wybrano opcję HMAC z dostawcą Slack, czy wpisano klucz tajny oraz czy Slack wysyła dane na adres URL dokładnie taki, jak podano w aplikacji, łącznie z kodem na końcu.

W historii nie ma żadnych wpisów

Żądanie nigdy nie dotarło. Proszę ponownie sprawdzić adres URL w Slacku oraz zapoznać się z dziennikiem dostarczania Slacka, aby sprawdzić otrzymaną odpowiedź. Kod 404 oznacza nieprawidłowy lub usunięty webhook, a kod 429 oznacza przekroczenie limitu wywołań przewidzianego w Państwa planie - zobacz Plany i sposób użytkowania.

Proces jest uruchamiany dla niewłaściwych zdarzeń

Każdy webhook w Państwa sklepie uruchamia ten sam wyzwalacz w Shopify Flow. Proszę dodać warunek oparty na identyfikatorze webhooka jako pierwszy krok przepływu pracy lub zawęzić zakres zdarzeń wysyłanych ze Slacka.

Żądania kończą się niepowodzeniem z komunikatem „znacznik czasu wykracza poza dopuszczalny zakres”

Slack podpisuje zdarzenie sygnaturą czasową, a aplikacja odrzuca wszystkie zdarzenia starsze niż 5 minut. Zazwyczaj wynika to z problemu z zegarem po stronie nadawcy lub z ponownej próby dostarczenia zdarzenia przez Slack znacznie później, przy zachowaniu pierwotnej sygnatury czasowej. Ponowne próby wysłania tego samego zdarzenia nie mogą zostać zaakceptowane; proszę poprosić Slack o wysłanie nowego zdarzenia.

Powiązane