Search
🧑‍💻

[실행조건] 웹훅

1. 웹훅 실행조건은 무엇인가요?

스튜디오에서 지원하지 않는 상세한 실행 조건을 외부 서버를 이용하여 직접 만들 수 있는 기능이에요.
코딩을 할줄 안다면 직접 웹 서버를 만들어서 사용자의 입력 값이나 계정 정보를 활용한 나만의 실행 조건을 만들 수 있어요.
리얼월드 스튜디오에서 웹훅은 상업적 용도로 사용하는 것을 금지합니다.
리얼월드 서버에서 직접 만든 웹 서버로 요청을 보내면, 웹 서버에서 리액션을 실행할지 말지 여부를 알려주도록 알려주면 돼요.

2. 웹서버 만들기

웹서버는 JavaScript, Python, Java, C# 등 다양한 언어를 통해 만들 수 있어요.
HTTP GET이나 POST요청을 받을 수 있는 웹훅 엔드포인트를 만들어주세요. 사용자의 액션 발생 시 그 엔드포인트로 웹훅 요청이 보내져요.
예) GET https://my-webhook.sample/webhook
서버는 웹훅 요청에 대한 응답으로 문자열 true혹은 false를 반환하면 돼요.
true일 경우 같은 조건별 리액션에 포함된 리액션을 실행하고 false일 경우 다음 조건별 리액션 혹은 오답시 리액션으로 넘어가게 돼요.
예) 리액션이 실행되도록 하는 서버의 응답
HTTP/1.1 200 OK Content-Length: 4 Content-Type: text/plain; charset=utf-8 true
Plain Text
복사

3. 웹훅 설정하기

웹훅 엔드포인트를 전부 적어주세요
GET 혹은 POST 메소드를 선택해주세요

4. 데이터 활용하기

리얼월드 서버에서 웹훅 요청을 보낼 때에는 사용자가 액션 수행 시에 입력한 값을 기본적으로 함께 보내고, 필요한 경우 사용자의 식별 정보를 함께 보내도록 설정할 수 있어요.

4-1. 액션 수행 시에 입력한 값

웹훅 설정이 GET 요청을 보내도록 설정 돼 있으면 쿼리 문자열input이라는 항목을 함께 보내요.
예) 사용자가 입력창에 ‘answer’ 라고 입력했을 때 서버로 보내는 GET 웹훅 요청
GET https://my-webhook.sample/webhook?input=answer HTTP/1.1 Host: my-webhook.sample
Plain Text
복사
웹훅 설정이 POST 요청을 보내도록 돼 있으면 요청 본문에 application/x-www-form-urlencoded 형식으로 input이라는 항목을 함께 보내요.
예) 사용자가 입력창에 ‘answer’라고 입력했을 때 서버로 보내는 POST 웹훅 요청
POST https://my-webhook.sample/webhook HTTP/1.1 Host: my-webhook.sample Content-Type: application/x-www-form-urlencoded Content-Length: 12 input=answer
Plain Text
복사

4-2. 사용자 식별 정보

사용자를 식별할 수 있는 정보를 쿼리 문자열로 함께 받을 수 있어요.
스튜디오에서 웹훅 엔드포인트를 작성할 때 아래와 같이 쿼리 문자열 템플릿을 추가 해주세요.
https://my-webhook.sample/webhook?userId={user-id}
Plain Text
복사
userId 부분은 서버에서 쿼리 문자열로 받아올 명칭입니다. 편의에 맞는 다른 이름으로 써도 돼요.
{user-id} 부분은 웹훅 요청이 보내질 때 실제 사용자의 식별자로 치환 되어 보내지도록 하는 템플릿이예요. 오타가 나거나 변경이 되면 정상적으로 작동을 하지 않아요.
GET 요청 시 사용자 입력 값은 자동으로 쿼리 문자열에 추가 되어 보내져요.
예) 식별자가 ‘user1’인사용자가 입력창에 ‘answer’라고 입력했을 때 서버로 보내는 GET 웹훅 요청
GET https://my-webhook.sample/webhook?userId=user1&input=answer HTTP/1.1 Host: my-webhook.sample
Plain Text
복사
POST 요청에서도 사용자 식별정보를 사용할 수 있지만, 요청 본문 대신 GET 요청과 마찬가지로 쿼리 문자열로 보내져요.
예) 식별자가 ‘user1’인사용자가 입력창에 ‘answer’라고 입력했을 때 서버로 보내는 POST 웹훅 요청
POST https://my-webhook.sample/webhook?userId=user1 HTTP/1.1 Host: my-webhook.sample Content-Type: application/x-www-form-urlencoded Content-Length: 12 input=answer
Plain Text
복사