유튜브 자동구독 노드 + 웹훅 기반 인증 설정
요청 타입 설정
요청 헤더 타입 설정
Content-type
application/x-www-form-urlencoded
요청 body 타입 설정
hub.callback
•
callback용 웹훅 노드를 새롭게 만들어야 합니다
path부분의 이름을 바꿔주고, Get요청으로 설정하고, Response를 webhook으로 받도록 바꿉니다.
Response Webhook 노드를 연결해주고 기본값으로 놔둡니다.
다시 트리거가 되는 웹훅으로 들어와 URL을 복사한 뒤, HTTP 요청 노드에 body 파라미터 hub.callback 부분에 값으로 넣어줍니다.
여기서 Body Content Type을 Form Urlencoded로 설정해야함.
hub.topic
body 파라미터를 하나 더 만든 후, 타겟이 되는 유튜브 채널 페이지에서 마우스 우클릭 누르고 페이지 소스보기를 선택한 뒤, channel_id를 검색하여 href 주소값을 모두 가져온다.
hub.verify, hub.mode, hub.verify_token, hub.secret
4개의 필드는 아래 값을 집어넣는다. verify_token, sercret부분은 아무거나 넣어도 상관없는듯.
hub.lease_seconds
10일이 구독 최대 기간이여서 주기적으로 재 구독 해주는 로직을 구축해야함. 8일로 설정하고 트리거를 연결해줍니다.
스케쥴 트리거와 연결하기
실행
HTTP 노드 실행 후 별 에러가 없다면 저장 후 새로고침하여 실행 준비한 후 전체적으로 실행을 진행해본다
실행하게 되면 위 아래 2개의 워크플로우가 모두 정상적으로 동작하고 2개의 Node 가 잘 작동했다고 우하단에 나오게된다.
하단의 웹훅 트리거에 들어가면 output에 정보가 나온것을 볼 수 있다.
인증 추가
웹훅 트리거와 response 사이에 코드 노드를 하나 추가한다.
코드를 작성하고 실행시켜본다. 여기서 verifyToken부분은 이전에 HTTP 노드에서 작성했던 토큰을 똑같이 적어줘야한다.
const query = $input.first().json.query;
const verifyToken = query['hub.verify_token'];
const challenge = query['hub.challenge'];
const mode = query['hub.mode'];
// 앞에서 본인이 HTTP 노드에 작성한 인증 코드를 여기에 작성하기!
if (verifyToken === 'syuka_agent' && mode === 'subscribe') {
return [{
json: {
challenge: challenge,
status: 200,
message: 'Verification successful'
}
}];
} else {
return [{
json: {
challenge: 'Forbidden',
status: 403,
message: 'Invalid verification'
}
}];
}
JavaScript
복사
그 다음 Response webhook에서 타입을 Text로 바꿔준 뒤 왼쪽에서 challenge를 Response Body에 드래그드롭한다.
이제 처음에 있던 HTTP 노드의 콜백 주소를 webhook 트리거의 웹훅 URL을 test에서 production으로 바꿔준다.
•
webhook trigger
•
HTTP node의 callback주소
배포하기
우상단에 publish버튼을 눌러 워크플로우를 배포하준다. 이제 배포된 워크플로우는 자동으로 작동할 것이다.
유튜브 세부정보 다루기
웹훅 트리거에서 post 요청도 수행하기 위해 setting에서 multiple HTTP methods 설정
post 요청 예시
참고자료






































