웹훅
웹훅이 뭐임?
웹훅을 통해 즉시 메시지와 알림을 앱에 받을 수 있어. 먼저 앱에 웹훅 URL을 입력하고, 주제에 구독하고, 웹훅을 검증해. 이 작업은 앱을 수정하고 웹훅 탭을 클릭해서 할 수 있어. 이 탭에서 구독할 수 있는 주제들을 확인할 수도 있어.
웹훅 알림을 작동시키려면, 앱이 **알림 읽기** 권한이 필요해.
인증
크립토호퍼 플랫폼에서 온 유효한 요청인지 확인하려면, 웹훅 요청을 인증하려면 요청 헤더에 X-Hub-Signature를 사용하세요. X-Hub-Signature는 앱 시크릿을 키로 사용하여 페이로드의 sha512 해시 문자열입니다.
웹훅 형식
웹훅은 다음 형식의 페이로드를 게시합니다:
{
"app_id": 123,
"type": "messages",
"messages": [
{
"type": "trade_completed",
"title": "Hop completed for BTC",
"message": "Your order has been successfully filled.",
"data": {"coin":"BTC", ... }
},
{...}
]
}
검증
웹훅을 저장하려면 웹훅을 유효성 검사해야 합니다. 웹훅 유효성 검사를 위해 웹훅은 200 HTTP 상태 코드를 반환하고 웹훅 양식에 입력한 동일한 유효성 검사 코드를 출력해야 합니다.
JSON 검증 메시지는 다음과 같습니다. 웹훅 양식에 입력한 검증 코드와 동일하게 출력해주세요.
{
"app_id": 123,
"type": "validate",
"messages": []
}
PHP 예시
<?php
$app_secret = 'ENTER_YOUR_APP_SECRET';
$verification_code = 'MY_VERIFICATION_CODE';
$requestBody = file_get_contents('php://input');
$headers = getallheaders();
$headers = array_change_key_case($headers, CASE_UPPER);
$json = json_decode($requestBody, true);
$signature = hash_hmac('sha512', $requestBody, $app_secret);
if($signature == $headers['X-HUB-SIGNATURE']){
//valid webhook request
if($json['type'] == 'validate'){
// validate webhook
echo $verification_code;
}elseif($json['type'] == 'messages'){
// receive messages
print_r($json['messages'], true);
}else{
// unkown type
echo 'Unkown webhook message type.';
}
}else{
//invalid signature
echo 'Invalid signature.';
}
?>