Nodejs에서 외부 웹 호출
기본적으론 nodejs에서는 PHP의 curl 호출을 사용할 수 없다.
(외부 모듈 설치로는 가능하다는 글들이 있다.)
NUGU Play 개발중 OAuth2.0 인증 개발 중 nodejs에서 curl 처럼 호출해야하는 경우가 발생하여 작업하였다.
curl 처럼 사용할 수있는 몇가지 중 추가 모듈 설치 없이 사용하가능한 "request"를 활용하는 방법이다.
var request = require('request'); //request 기능
var headers = { //수신처에 따라 필요한 경우 선언
'Content-Type': "application/x-www-form-urlencoded" //NUGU에서는 이값이 필요함.
}
//api get options.
var options = {
url : 'https://api.sktnugu.com/v1/play/oauth/invalidate', //수신처 URS
method:'post', //전송형식
headers:headers, //포함되어야 하는 헤더값
form: {'token': ttid} //인증 해제에 필요한 OAuth2.0 토큰값
};
//request 동작.
request(options, function (error, response, body) {
if(error) console.log("에러에러(wise 점검 및 인터넷 연결 안됨)");
if (!error && response.statusCode == 200) {
//Array를 클라이언트로 전송.
//res.send(dataSet); // 필요없으면 주석처리
}
});
위 구문을 실행하면 누구에 등록된 OAuth2.0 인증 토큰이 만료된다.