Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Webhooki to proste wywołania zwrotne HTTP, które przekazują powiadomienia o zdarzeniach, gdy coś wydarzy się w usłudze internetowej. W Azure Logic Apps i Power Automate można używać elementów webhook jako wyzwalaczy. Aplikacja logiki lub przepływ obserwuje ten wyzwalacz i wykonuje akcję przy każdym aktywowaniu wyzwalacza. W tym samouczku pokazano, jak używać webhooka jako wyzwalacza za pomocą łącznika niestandardowego zdefiniowanego przy użyciu specyfikacji OpenAPI.
Notatka
W tym artykule użyto GitHub jako przykładowej usługi, która może wysyłać powiadomienia za pośrednictwem elementów webhook, ale możesz rozszerzyć techniki przedstawione tutaj na dowolną usługę, która zezwala na elementy webhook.
Wymagania wstępne
- Jedna z następujących subskrypcji:
- Azure, jeśli są używane usługi Logic Apps
- Power Automate - narzędzie do automatyzacji procesów
- Podstawowe doświadczenie w tworzeniu aplikacji logiki lub przepływów w chmurze oraz tworzeniu łączników niestandardowych na podstawie definicji interfejsu OpenAPI.
- Jeśli używasz usługi Logic Apps, najpierw utwórz łącznik niestandardowy usługi Azure Logic Apps.
- Podstawowa wiedza na temat elementów webhook.
- Podstawowa znajomość specyfikacji OpenAPI (dawniej znanej jako Swagger).
- Konto usługi GitHub.
- Przykładowa definicja OpenAPI dla tego samouczka. Jeśli jeszcze go nie masz, pobierz go do użycia w kolejnych krokach. W przeciwnym razie musisz utworzyć niestandardową definicję OpenAPI dla webhooka.
Włączanie uwierzytelniania w GitHub
Interfejs API usługi sieciowej, który wysyła żądanie webhooka do usługi Logic Apps lub Power Automate, zazwyczaj korzysta z jakiejś formy uwierzytelniania, a GitHub nie jest tu wyjątkiem. GitHub obsługuje kilka typów uwierzytelniania. W tym samouczku używane są szczegółowe tokeny dostępu osobistego usługi GitHub.
Przejdź do GitHub i zaloguj się, jeśli jeszcze tego nie zrobiono.
W prawym górnym rogu wybierz swój obraz profilu, a następnie w menu wybierz pozycję Ustawienia.
W menu po lewej stronie wybierz pozycję Ustawienia dewelopera.
Pod Osobiste tokeny dostępu wybierz Drobnoziarniste tokeny.
Wybierz przycisk Generuj nowy token , a następnie potwierdź hasło, jeśli jest to wymagane.
Wprowadź nazwę tokenu i opis tokenu.
W obszarze Wygaśnięcie wybierz datę wygaśnięcia tokenu.
W obszarze Dostęp do repozytorium wybierz pozycję Tylko wybierz repozytoria i wybierz repozytorium, do którego chcesz udzielić dostępu.
W sekcji Uprawnienia wybierz pozycję Dodaj uprawnienia>Webhooki>Odczyt i zapis.
Wybierz przycisk Generuj token .
Zanotuj wygenerowany token. Tego tokenu należy użyć później podczas dodawania łącznika webhooka jako wyzwalacza.
Ważne
Nie można ponownie uzyskać dostępu do tego tokenu. Skopiuj i wklej go gdzieś, aby użyć go w dalszej części samouczka.
Zdefiniuj webhook w definicji OpenAPI
Webhooki wdrażasz w usługach Logic Apps i Power Automate jako część łącznika niestandardowego. Aby utworzyć łącznik, należy podać definicję interfejsu OpenAPI definiującą kształt elementu webhook. W tym samouczku użyto pobranej przykładowej definicji interfejsu OpenAPI dla elementów webhook GitHub.
Aby utworzyć wyzwalacz, jeśli nie masz definicji OpenAPI, z którą chcesz pracować, użyj interfejsu użytkownika wyzwalaczy w kreatorze łącznika niestandardowego w celu zdefiniowania wyzwalaczy elementu webhook.
Przykładowa definicja interfejsu OpenAPI zawiera trzy części, które mają kluczowe znaczenie dla działania elementu webhook:
- Tworzenie webhooka
- Definiowanie przychodzącego żądania hooka z API usługi internetowej (w tym przykładzie samouczka jest to GitHub)
- Usuwanie webhooka
Łącznik używa tej definicji OpenAPI, aby określić, jak tworzyć, odbierać z, i usuwać elementy webhook z repozytorium GitHub.
Utwórz webhook
Łącznik używa interfejsu API usługi internetowej (w naszym przykładzie interfejsu GitHub REST API), aby utworzyć webhook po stronie usługi internetowej, wysyłając żądanie HTTP POST do odpowiedniego punktu końcowego tworzenia webhooków dla tej usługi internetowej (/repos/{owner}/{repo}/hooks w przypadku GitHub).
Podczas tworzenia nowej aplikacji logiki lub przepływu przy użyciu łącznika łącznik wysyła żądanie POST do punktu końcowego tworzenia elementu webhook usługi internetowej zgodnie z definicją interfejsu OpenAPI łącznika. Wysyła również żądanie POST na ten adres URL, jeśli zmienisz wyzwalacz aplikacji logiki lub przepływu. W poniższej przykładowej konfiguracji ścieżki OpenAPI właściwość post zawiera schemat żądania utworzenia elementu webhook, które ma zostać wysłane do interfejsu GitHub REST API.
"/repos/{owner}/{repo}/hooks": {
"x-ms-notification-content": {
"description": "Details for Webhook",
"schema": {
"$ref": "#/definitions/WebhookPushResponse"
}
},
"post": {
"description": "Creates a GitHub webhook",
"summary": "Triggers when a PUSH event occurs",
"operationId": "webhook-trigger",
"x-ms-trigger": "single",
"parameters": [
{
"name": "owner",
"in": "path",
"description": "Name of the owner of targeted repository",
"required": true,
"type": "string"
},
{
"name": "repo",
"in": "path",
"description": "Name of the repository",
"required": true,
"type": "string"
},
{
"name": "Request body of webhook",
"in": "body",
"description": "This is the request body of the Webhook",
"schema": {
"$ref": "#/definitions/WebhookRequestBody"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/WebhookCreationResponse"
}
}
}
}
},
Ważne
Właściwość "x-ms-trigger": "single" jest rozszerzeniem schematu nakazującym usługom Logic Apps i Power Automate wyświetlenie tego elementu webhook na liście dostępnych wyzwalaczy w projektancie. Pamiętaj, aby koniecznie to uwzględnić.
Zdefiniuj żądanie haka przychodzące z API
Zdefiniuj kształt przychodzącego żądania hooka (powiadomienia z GitHub do usługi Logic Apps lub Power Automate) we właściwości niestandardowej x-ms-notification-content, jak pokazano w poprzednim przykładzie. Żądanie nie musi zawierać całej treści żądania, a tylko te części, które mają być używane w aplikacjach logiki lub przepływie.
Usuń webhook
Dodaj definicję sposobu usunięcia webhooka w definicji OpenAPI. Usługi Logic Apps i Power Automate podejmują próbę usunięcia istniejącego elementu webhook w razie zaktualizowania wyzwalacza lub usunięcia aplikacji logiki bądź przepływu.
"/repos/{owner}/{repo}/hooks/{hook_Id}": {
"delete": {
"description": "Deletes a Github webhook",
"operationId": "DeleteTrigger",
"parameters": [
{
"name": "owner",
"in": "path",
"description": "Name of the owner of targeted repository",
"required": true,
"type": "string"
},
{
"name": "repo",
"in": "path",
"description": "Name of the repository",
"required": true,
"type": "string"
},
{
"name": "hook_Id",
"in": "path",
"description": "ID of the webhook being deleted",
"required": true,
"type": "string"
}
]
}
},
Do usuwania wywołania elementu webhook nie są dołączone żadne nagłówki. Wywołanie webhooka usuwania korzysta z tego samego połączenia co konektor.
Ważne
Aby umożliwić usłudze Logic Apps lub Power Automate usunięcie elementu webhook, interfejs API usługi sieci Web musi uwzględniać nagłówek HTTP Location w odpowiedzi 201 w przypadku tworzenia elementu webhook. Nagłówek Location powinien zawierać ścieżkę do webhooka używanego z metodą HTTP DELETE. Na przykład nagłówek Location zawarty w odpowiedzi z GitHub ma następujący format: https://api.github.com/repos/<user name>/<repo name>/hooks/<hook ID>.
Importuj definicję OpenAPI
Zacznij od zaimportowania definicji interfejsu OpenAPI dla usługi Logic Apps lub Power Automate.
Import definicji OpenAPI dla Logic Apps
Przejdź do witryny Azure Portal i otwórz łącznik usługi Logic Apps utworzony wcześniej w procedurze Tworzenie łącznika niestandardowego usługi Azure Logic Apps.
W menu łącznika wybierz Łącznik Logic Apps, a następnie wybierz Edytuj.
W obszarze Ogólne wybierz pozycję Przekaż plik OpenAPI, a następnie przejdź do pobranego przykładowego pliku OpenAPI.
Importuj definicję OpenAPI do Power Automate
Przejdź do https://make.powerautomate.com/.
W prawym górnym rogu wybierz ikonę koła zębatego, a następnie wybierz pozycję Łączniki niestandardowe.
Wybierz pozycję Utwórz łącznik niestandardowy, a następnie wybierz pozycję Importuj kolekcję Postman.
Wprowadź nazwę łącznika niestandardowego, przejdź do pobranego przykładowego pliku OpenAPI i wybierz pozycję Połącz.
Parametr Wartość Tytuł łącznika niestandardowego „GitHubDemo”
Zakończ tworzenie łącznika niestandardowego
Na stronie Ogólne wybierz pozycję Kontynuuj.
Na stronie Zabezpieczenia w obszarze Typ uwierzytelniania wybierz opcję Uwierzytelnianie podstawowe.
W sekcji Uwierzytelnianie podstawowe wprowadź tekst Nazwa użytkownika i Hasło w polach etykiet. Etykiety te są wyświetlane podczas korzystania z wyzwalacza w aplikacji logiki lub przepływie.
W górnej części kreatora upewnij się, że nazwa jest ustawiona na "GitHubDemo", a następnie wybierz pozycję Utwórz łącznik.
Możesz teraz zacząć korzystać z wyzwalacza w aplikacji logiki lub przepływie albo przeczytać, jak tworzyć wyzwalacze z poziomu interfejsu użytkownika.
Twórz wyzwalacze webhooków w interfejsie użytkownika
W tej sekcji dowiesz się, jak utworzyć wyzwalacz w interfejsie użytkownika bez konieczności posiadania definicji wyzwalacza w definicji interfejsu OpenAPI. Zacznij od bazowej definicji OpenAPI lub rozpocznij od zera w kreatorze niestandardowych łączników.
Na stronie Ogólne upewnij się, że określono opis i adres URL.
Parametr Wartość Opis GitHub to społecznościowe repozytorium kodu źródłowego. URL „api.github.com” Na stronie Zabezpieczenia skonfiguruj uwierzytelnianie podstawowe, takie jak w poprzedniej sekcji.
Na stronie Definicja wybierz pozycję Nowy wyzwalacz i wypełnij opis wyzwalacza. W tym przykładzie tworzysz wyzwalacz, który uruchamia się, gdy w repozytorium zostanie utworzony pull request.
Parametr Wartość Podsumowanie Uruchamia się po utworzeniu pull requestu w wybranym repozytorium Opis Wyzwalane, gdy w wybranym repozytorium zostanie utworzone żądanie ściągnięcia Identyfikator operacji „webhook-PR-trigger” Widoczność „brak” (więcej informacji poniżej) Typ wyzwalacza „Webhook” Właściwość Widoczność dla operacji i parametrów w aplikacji lub przepływie logicznym ma następujące opcje:
- brak: zazwyczaj wyświetlane w aplikacji logiki lub przepływie
- zaawansowane: ukryte w dodatkowym menu
- wewnętrzne: ukryte przed użytkownikiem
- ważne: zawsze wyświetlane użytkownikowi w pierwszej kolejności
W obszarze Żądania są wyświetlane informacje na podstawie żądania HTTP dotyczącego akcji. Wybierz Importuj z próbki.
Zdefiniuj żądanie dla wyzwalacza webhooka, a następnie wybierz Importuj. Udostępniamy przykład do zaimportowania (w poniższej sekcji). Aby uzyskać więcej informacji, zobacz dokumentację interfejsu API GitHub. Usługi Logic Apps i Power Automate automatycznie dodają standardowe nagłówki
content-typei zabezpieczeń, więc nie trzeba ich definiować podczas importowania próbki.
Parametr Wartość Czasownik „OPUBLIKUJ” URL "https://api.github.com/repos/{owner}/{repo}/hooks" Treść Zobacz poniżej { "name": "web", "active": true, "events": [ "pull_request" ], "config": { "url": "http://example.com/webhook" } }W obszarze Odpowiedź są wyświetlane informacje na podstawie odpowiedzi HTTP dla tej akcji. Wybierz pozycję Dodaj odpowiedź domyślną.
Zdefiniuj odpowiedź dla wyzwalacza webhooka, a następnie wybierz Importuj. Ponownie udostępniamy przykład do zaimportowania. Aby uzyskać więcej informacji, zobacz dokumentację interfejsu API GitHub.
{ "action": "opened", "number": 1, "pull_request": { "html_url": "https://github.com/baxterthehacker/public-repo/pull/1", "state": "open", "locked": false, "title": "Update the README with new information", "user": { "login": "baxterthehacker", "type": "User" } } }W obszarze Konfiguracja wyzwalacza wybierz parametr, który powinien otrzymać wartość adresu zwrotnego URL z usługi GitHub. Ten parametr jest właściwością
urlw obiekcieconfig.
W górnej części kreatora wprowadź nazwę, a następnie wybierz pozycję Utwórz łącznik.
Użyj webhooka jako wyzwalacza
Po skonfigurowaniu wszystkich elementów użyj elementu webhook za pośrednictwem łącznika niestandardowego w aplikacji logiki lub przepływie. Następnie utwórz przepływ, który wysyła wiadomość e-mail za każdym razem, gdy repozytorium GitHub odbiera wypychanie usługi Git.
W obszarze https://make.powerautomate.com/ u góry strony wybierz Moje przepływy.
Wybierz pozycję Utwórz z pustego.
W projektancie usługi Power Automate wyszukaj łącznik niestandardowy zarejestrowany wcześniej.
Wybierz element na liście, aby użyć go jako wyzwalacza.
Ponieważ jest to pierwszy raz, gdy używasz tego łącznika niestandardowego, połącz się z nim. Wprowadź informacje o połączeniu, a następnie wybierz pozycję Utwórz.
Parametr Wartość Nazwa połączenia Opisowa nazwa Nazwa użytkownika Twoja nazwa użytkownika GitHub Hasło Wcześniej utworzony osobisty token dostępu Wprowadź szczegóły dotyczące repozytorium, które ma być monitorowane. Zwróć uwagę na znane pola obiektu WebhookRequestBody z pliku OpenAPI.
Parametr Wartość właściciel Właściciel monitorowanego repozytorium repo Repozytorium do monitorowania Ważne
Użyj repozytorium, do którego twoje konto ma uprawnienia. Najprostszym sposobem, aby to zrobić, jest użycie własnego repozytorium.
Wybierz kolejno pozycje Nowy krok>Dodaj akcję.
Wyszukaj i wybierz akcję Wyślij wiadomość e-mail (wersja 2).
Wprowadź tekst w polu Treść i inne pola, używając wartości w oknie dialogowym zawartość dynamiczna. Wartości pochodzą z obiektu WebhookPushResponse w pliku OpenAPI.
Nazwij przepływ w górnej części strony i kliknij pozycję Utwórz przepływ.
Weryfikacja i rozwiązywanie problemów
Aby sprawdzić, czy wszystko jest poprawnie skonfigurowane, wybierz pozycję Moje przepływy, a następnie wybierz ikonę informacji obok nowego przepływu, aby wyświetlić historię uruchamiania:
- Powinien być widoczny co najmniej jeden przebieg o stanie Zakończone powodzeniem odpowiadający utworzeniu elementu webhook. To uruchomienie wskazuje, że webhook został pomyślnie utworzony po stronie GitHuba.
- Jeśli przebieg zakończył się niepowodzeniem, przejrzyj szczegóły przebiegu, aby zobaczyć, dlaczego zakończyła się niepowodzeniem. Jeśli niepowodzenie było spowodowane odpowiedzią
404 Not Found, Twoje konto GitHub prawdopodobnie nie ma odpowiednich uprawnień do utworzenia webhooka w repozytorium, którego użyto.
Podsumowanie
Jeśli wszystko zostało poprawnie skonfigurowane, będziesz otrzymywać powiadomienia push w aplikacji mobilnej Power Automate za każdym razem, gdy w wybranym repozytorium GitHub wystąpi operacja git push. Korzystając z opisanego wcześniej procesu, możesz użyć dowolnej usługi obsługującej webhooki jako wyzwalacza w swoich przepływach.
Następne kroki
- Tworzenie łącznika niestandardowego dla interfejsu API sieci Web
- Uwierzytelnij interfejs API i łącznik za pomocą usługi Microsoft Entra ID
Przekazywanie opinii
Jesteśmy wdzięczni za opinie na temat problemów z platformą łączników oraz pomysły na nowe funkcje. Aby przekazać opinię, przejdź na stronę Przesyłanie problemów lub uzyskiwanie pomocy dotyczącej łączników i wybierz typ opinii.