HTTP
Macro Deck에 포함버튼에서 HTTP 요청을 보내고 응답의 값을 변수에 저장하세요.
스위치가 켜져 있고 구성 옵션이 없는 HTTP 연동 페이지
- GET, POST, PUT, PATCH, DELETE 등, 쿼리와 헤더 포함
- Basic, Bearer 토큰, API 키 헤더 인증
- JSON, 폼, 텍스트, 파일 업로드 본문
- 상태, 헤더, JSON 값을 변수에 저장
- 쿼리 매개변수와 헤더 값에 변수 사용
HTTP 연동은 Macro Deck에서 웹 요청을 보냅니다. 웹훅을 호출하거나, 웹 API가 있는 네트워크 기기를 제어하거나, 온라인 서비스에서 값을 읽어 버튼에 표시할 때 사용하세요. Macro Deck에 포함되어 있고 처음부터 켜져 있으므로 연결하거나 로그인할 것이 없습니다.
두 가지 액션
HTTP 요청 보내기는 요청 전체를 구성합니다. 메서드를 고르고 URL을 입력한 뒤 쿼리 매개변수와 헤더를 이름과 값 쌍으로 추가합니다. 본문 유형에서는 none, json, form, text, multipart(추가 폼 필드가 있는 파일 업로드) 중에서 고릅니다. 인증에서는 basic(사용자 이름과 비밀번호), bearer(토큰), header(이름을 지정한 헤더에 넣는 토큰, 예: X-Api-Key)를 쓸 수 있습니다. 예상 상태는 어떤 응답을 성공으로 볼지 정하며 기본값은 2xx입니다. 시간 제한을 설정하고, 리디렉션 따라가기를 끄고, **최대 응답 크기(바이트)**를 제한할 수도 있습니다.
캡처는 응답의 일부를 변수에 저장합니다. 각 줄은 변수 이름과 선택자로 이루어집니다. 선택자는 $status, $ok, $duration, $body, $truncated, $headers, $header:<name> 또는 data.items[0].name 같은 JSON 경로입니다. 아직 없는 변수는 새로 만들어집니다.
JSON 값 가져오기는 값 하나를 읽는 간단한 방법입니다. URL, JSON 경로를 입력하고 변수에 저장에서 변수를 고르세요.
활용 예
- HTTP 요청 보내기와 본문 유형
json으로 채팅 웹훅에{"text": "Stream is live"}를 보내는 버튼. - 네트워크에 있는 스마트 플러그를 로컬 웹 API로 켜는 버튼.
- JSON 값 가져오기로 공개 API에서 현재 가격을 읽고 라벨에
{{ vars.price }}로 표시하는 버튼. - 요청을 보내고
$status를 캡처한 뒤, 서버가200으로 응답하지 않으면 만약 / 아니면으로 버튼을 빨간색으로 바꾸는 흐름.
쿼리 매개변수와 헤더의 값에는 {{ vars.channel }} 같은 변수를 넣을 수 있습니다. 요청은 Macro Deck이 실행 중인 컴퓨터에서 실행되므로 http://192.168.1.20 같은 주소로 그 컴퓨터의 네트워크에 있는 기기에 접근할 수 있습니다. 서버에 연결할 수 없거나, 요청 시간이 초과되거나, TLS 인증서가 거부되거나, 상태가 예상과 다르면 액션이 명확한 메시지와 함께 실패합니다.
준비물
- Windows, macOS 또는 Linux의 Macro Deck 3
- 호출할 웹 API나 웹훅의 주소
- 서비스에 필요하다면 API 키, 토큰 또는 비밀번호
설정하기
1단계: 연동이 켜져 있는지 확인
Macro Deck의 사이드바에서 연동을 클릭하고 HTTP를 클릭하세요. 오른쪽 위의 스위치는 기본으로 켜져 있으며, 꺼져 있으면 켜세요. 설정할 것은 없습니다. 개요 탭에 **이 연동에 사용할 수 있는 구성 옵션이 없습니다.**라고 표시됩니다.
2단계: 버튼에 HTTP 액션 추가
덱 페이지에서 버튼을 클릭하세요. 덱의 잠금이 해제되어 있어야 하며, 오른쪽 위에 잠금 버튼이 보이면 해제된 상태입니다. 짧게 누르기가 선택된 상태로 편집기가 열립니다. + 액션 추가를 클릭하고 액션 추가 대화 상자 왼쪽에서 HTTP를 선택한 다음 HTTP 요청 보내기를 고르거나, 값 하나만 읽으려면 JSON 값 가져오기를 고르세요. **액션 검색…**에 이름을 입력해도 됩니다.
3단계: 요청 입력
메서드를 고르고 URL을 입력하세요. API에 필요하다면 쿼리 매개변수와 헤더를 추가하세요. 데이터를 보내는 요청이라면 본문 유형을 고르고 JSON 본문, 양식 필드 또는 텍스트 본문을 채우세요.
4단계: 인증 추가
서비스에 로그인이나 키가 필요하면 인증에서 고르세요.
basic은 사용자 이름과 비밀번호 / 토큰,bearer는 비밀번호 / 토큰에 넣은 토큰,header는 헤더 이름과 비밀번호 / 토큰에 넣은 키를 사용합니다. 대부분의 서비스는 계정 설정이나 개발자 설정에서 API 키나 토큰을 보여 줍니다.5단계: 응답의 값 저장
응답을 사용하려면 캡처에 줄을 추가하세요. 변수 이름과
$status같은 선택자 또는data.temperature같은 JSON 경로를 넣습니다. JSON 값 가져오기에서는 JSON 경로를 입력하고 변수에 저장에서 변수를 고르세요.6단계: 버튼 시험하기
편집기에서 실행을 클릭하면 요청을 바로 보냅니다. 또는 저장한 뒤 버튼을 누르세요. 액션이 실패하면 메시지가 이유를 알려 줍니다. 예를 들어 서버에 연결할 수 없었거나 상태가 예상 상태와 맞지 않았다는 내용입니다.
액션2
버튼에 넣거나 흐름에서 실행하세요.
- HTTP 요청 보내기
- 구성 가능한 HTTP 요청을 보내고 응답을 변수에 캡처할 수 있습니다.
- JSON 값 가져오기
- URL을 가져와 JSON 응답에서 값 하나를 변수에 씁니다.
자주 묻는 질문
API 키와 비밀번호는 어디에 저장되나요?
비밀번호 / 토큰에 입력한 내용은 암호화되어 저장되며, 요청을 보낼 때만 일반 텍스트로 바뀝니다. 헤더에 입력한 값은 암호화되지 않은 채 저장되고 내보낸 프로필에도 포함되므로, 키와 토큰은 인증 필드에 넣으세요.
로컬 네트워크의 기기를 호출할 수 있나요?
네. 요청은 Macro Deck이 실행 중인 컴퓨터에서 보내므로 그 컴퓨터가 접근할 수 있는 주소라면 모두 동작합니다. 자체 서명 인증서를 쓰는 기기라면 TLS 인증서 검증을 끌 수 있지만, 직접 관리하는 네트워크의 기기에만 그렇게 하세요.
서버가 응답했는데도 액션이 실패하는 이유는 무엇인가요?
응답이 예상 상태와 맞지 않았습니다. 기본값은 2xx입니다. API가 실제로 반환하는 상태 코드, 200-204 같은 범위, 목록을 입력하거나, 모든 상태를 허용하려면 any를 입력하세요. JSON 값 가져오기는 항상 2xx 응답을 기대합니다.
어떤 JSON 경로를 사용할 수 있나요?
data.items[0].name이나 [0].id처럼 점과 인덱스를 사용하거나, 문서 전체는 $를 사용하세요. 캡처에서는 $status 같은 예약 선택자가 우선하므로, 실제 이름이 status인 필드는 $.status로 읽습니다.
변수를 먼저 만들어야 하나요?
아니요. 캡처나 변수에 저장에 없는 변수 이름을 지정하면 Macro Deck이 그 변수를 만듭니다. 같은 이름의 변수가 다른 유형으로 이미 있으면 저장이 실패하고 메시지가 표시됩니다.
스마트 홈 및 웹의 다른 연동
Home Assistant
Macro Deck에 포함덱에서 조명을 켜고 끄고, 장면과 스크립트를 실행하고, Home Assistant의 실시간 상태를 표시하세요.
AdGuard Home
Macro Deck에 포함AdGuard Home 보호를 켜거나 끄거나 일시 중지하고, 통계를 덱에 표시하세요.
RSS 피드
Macro Deck에 포함RSS와 Atom 피드를 구독하고, 최신 글을 위젯에 표시하며, 새 글이 올라오면 반응하세요.
날씨
Macro Deck에 포함API 키 없이 원하는 위치의 현재 날씨와 예보를 덱에 표시하세요.