HTTP
Dołączona do Macro DeckWysyłaj żądania HTTP z przycisku i zapisuj wartości z odpowiedzi w zmiennych.
Strona integracji HTTP z włączonym przełącznikiem i bez opcji konfiguracji
- GET, POST, PUT, PATCH, DELETE i inne, z parametrami zapytania i nagłówkami
- Uwierzytelnianie Basic, tokenem Bearer lub kluczem API w nagłówku
- Treść JSON, formularz, tekst i przesyłanie plików
- Zapisywanie statusu, nagłówków lub wartości JSON w zmiennych
- Zmienne w wartościach parametrów zapytania i nagłówków
Integracja HTTP wysyła żądania sieciowe z Macro Deck. Pozwala wywołać webhook, sterować urządzeniem w sieci, które ma web API, albo odczytać wartość z usługi online i pokazać ją na przycisku. Jest dołączona do Macro Deck i włączona od początku, więc nie trzeba niczego łączyć ani się logować.
Dwie akcje
Wyślij żądanie HTTP tworzy pełne żądanie. Wybierz metodę w polu Metoda, wpisz URL i dodaj Parametry zapytania oraz Nagłówki jako pary nazwa i wartość. W polu Typ treści wybierz none, json, form, text lub multipart (przesłanie pliku z dodatkowymi polami formularza). Uwierzytelnianie oferuje basic (nazwa użytkownika i hasło), bearer (token) i header (token w nagłówku o wybranej nazwie, np. X-Api-Key). Oczekiwany status określa, które odpowiedzi są uznawane za sukces, domyślnie 2xx. Można też ustawić Limit czasu, wyłączyć Podążaj za przekierowaniami i ograniczyć Maksymalny rozmiar odpowiedzi (bajty).
Przechwycenia zapisują części odpowiedzi w zmiennych. Każdy wiersz łączy nazwę zmiennej z selektorem: $status, $ok, $duration, $body, $truncated, $headers, $header:<name> lub ścieżką JSON, np. data.items[0].name. Zmienna, która jeszcze nie istnieje, zostanie utworzona.
Pobierz wartość JSON to skrócona forma odczytu jednej wartości: wpisz URL, ścieżkę w polu Ścieżka JSON i zmienną w polu Zapisz do zmiennej.
Przykładowe zastosowania
- Przycisk, który akcją Wyślij żądanie HTTP z typem treści
jsonwysyła{"text": "Stream is live"}do webhooka czatu. - Przycisk, który włącza inteligentne gniazdko w sieci przez jego lokalne web API.
- Przycisk, który akcją Pobierz wartość JSON odczytuje bieżącą cenę z publicznego API i pokazuje ją w etykiecie za pomocą
{{ vars.price }}. - Przebieg, który wysyła żądanie, przechwytuje
$statusi za pomocą Jeśli / W przeciwnym razie zmienia kolor przycisku na czerwony, gdy serwer nie odpowiedział kodem200.
Wartości parametrów zapytania i nagłówków mogą zawierać zmienne, np. {{ vars.channel }}. Żądanie jest wykonywane na komputerze, na którym działa Macro Deck, więc adresy takie jak http://192.168.1.20 docierają do urządzeń w sieci tego komputera. Akcja kończy się jasnym komunikatem, gdy serwer jest nieosiągalny, upłynie limit czasu żądania, certyfikat TLS zostanie odrzucony lub status jest inny niż oczekiwany.
Czego potrzebujesz
- Macro Deck 3 w systemie Windows, macOS lub Linux
- Adres web API lub webhooka, który ma zostać wywołany
- Klucz API, token lub hasło, jeśli usługa tego wymaga
Konfiguracja krok po kroku
Krok 1: Sprawdź, czy integracja jest włączona
W Macro Deck kliknij Integracje na pasku bocznym, a następnie HTTP. Przełącznik w prawym górnym rogu jest domyślnie włączony; jeśli jest wyłączony, włącz go. Nie trzeba niczego konfigurować: karta Przegląd pokazuje Ta integracja nie ma dostępnych opcji konfiguracji.
Krok 2: Dodaj akcję HTTP do przycisku
Na stronie Deck kliknij przycisk. Deck musi być odblokowany: jest odblokowany, gdy w prawym górnym rogu widać przycisk Zablokuj. Otworzy się edytor z zaznaczonym Krótkie naciśnięcie. Kliknij + Dodaj akcję, po lewej stronie okna Dodaj akcję wybierz HTTP i wybierz Wyślij żądanie HTTP albo Pobierz wartość JSON, jeśli ma zostać odczytana tylko jedna wartość. Nazwę można też wpisać w polu Szukaj akcji….
Krok 3: Wprowadź żądanie
Wybierz metodę w polu Metoda i wpisz URL. Dodaj Parametry zapytania i Nagłówki, jeśli API ich wymaga. Dla żądania z danymi wybierz Typ treści i wypełnij Treść JSON, Pola formularza lub Treść tekstowa.
Krok 4: Dodaj uwierzytelnianie
Jeśli usługa wymaga logowania lub klucza, wybierz sposób w polu Uwierzytelnianie:
basicz polami Nazwa użytkownika i Hasło / token,bearerz tokenem w polu Hasło / token alboheaderz polem Nazwa nagłówka i kluczem w polu Hasło / token. Większość usług pokazuje klucze API lub tokeny w ustawieniach konta lub ustawieniach dla programistów.Krok 5: Zapisz wartości z odpowiedzi
Aby wykorzystać odpowiedź, dodaj wiersze w sekcji Przechwycenia: nazwę zmiennej i selektor, np.
$status, lub ścieżkę JSON, np.data.temperature. W akcji Pobierz wartość JSON wpisz ścieżkę w polu Ścieżka JSON i wybierz zmienną w polu Zapisz do zmiennej.Krok 6: Wypróbuj przycisk
Kliknij Uruchom w edytorze, aby od razu wysłać żądanie, albo zapisz i naciśnij przycisk. Jeśli akcja się nie powiedzie, komunikat wyjaśni dlaczego, np. że serwer był nieosiągalny lub status nie zgadzał się z polem Oczekiwany status.
Akcje2
Przypisz je do przycisku lub uruchamiaj w przebiegu.
- Wyślij żądanie HTTP
- Wysyła konfigurowalne żądanie HTTP i może przechwytywać odpowiedź do zmiennych.
- Pobierz wartość JSON
- Pobiera adres URL i zapisuje jedną wartość z odpowiedzi JSON w zmiennej.
Najczęściej zadawane pytania
Gdzie są przechowywane moje klucze API i hasła?
To, co wpisano w polu Hasło / token, jest przechowywane w postaci zaszyfrowanej i odszyfrowywane dopiero przy wysyłaniu żądania. Wartości wpisane w polu Nagłówki są przechowywane bez szyfrowania i trafiają do eksportowanych profili, dlatego klucze i tokeny należy umieszczać w polach uwierzytelniania.
Czy mogę wywołać urządzenie w sieci lokalnej?
Tak. Żądanie jest wysyłane z komputera, na którym działa Macro Deck, więc działa każdy adres osiągalny z tego komputera. Dla urządzenia z certyfikatem samopodpisanym można wyłączyć Weryfikuj certyfikat TLS, ale tylko w przypadku urządzeń we własnej sieci.
Dlaczego akcja kończy się błędem, mimo że serwer odpowiedział?
Odpowiedź nie zgadzała się z polem Oczekiwany status, które domyślnie ma wartość 2xx. Wpisz kod statusu, który API faktycznie zwraca, zakres, np. 200-204, listę albo any, aby akceptować każdy status. Pobierz wartość JSON zawsze oczekuje odpowiedzi 2xx.
Jakich ścieżek JSON mogę używać?
Używaj kropek i indeksów, np. data.items[0].name lub [0].id, albo $ dla całego dokumentu. W sekcji Przechwycenia zarezerwowane selektory, takie jak $status, mają pierwszeństwo, więc pole o nazwie status odczytuje się za pomocą $.status.
Czy muszę najpierw utworzyć zmienne?
Nie. Gdy przechwycenie lub Zapisz do zmiennej wskazuje nieistniejącą zmienną, Macro Deck ją utworzy. Jeśli zmienna o tej nazwie już istnieje i ma inny typ, zapis kończy się komunikatem.
Więcej w kategorii Inteligentny dom i internet
Home Assistant
Dołączona do Macro DeckPrzełączaj światła, uruchamiaj sceny i skrypty oraz wyświetlaj na decku bieżące stany z Home Assistant.
AdGuard Home
Dołączona do Macro DeckWłączaj, wyłączaj i wstrzymuj ochronę AdGuard Home oraz wyświetlaj jego statystyki na decku.
Kanały RSS
Dołączona do Macro DeckObserwuj kanały RSS i Atom, pokazuj ich najnowsze artykuły w widżetach i reaguj na pojawienie się nowych artykułów.
Pogoda
Dołączona do Macro DeckWyświetlaj na decku bieżącą pogodę i prognozę dla wybranych lokalizacji, bez klucza API.