카카오 API를 사용하여 동영상 검색을 한 결과를 카카오톡 챗봇으로 나타낼 것이다.
https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide#search-video
자세한 설명은 여기 참고
먼저 카카오 애플리케이션에 들어가서 REST API 키를 발급받는다.
https://developers.kakao.com/console/app
동영상 검색은 GET 형식으로 할 수 있다.
포스트맨에서 GET으로 요청했을 때 documents 안에 결과가 담긴 것을 확인할 수 있다.
apiRouter.post('/mbtivideo', (req, res) => {
var userId = req.body.userRequest.user.id;
var userMbti = userDB[userId][4];
var api_url = 'https://dapi.kakao.com/v2/search/vclip?query=' + userMbti;
var request = require('request');
console.log(api_url);
var options = {
url: api_url,
method: 'GET',
headers: {
'Authorization': 'KakaoAK '+ KAKAO_KEY
},
encoding: 'UTF-8',
}
KAKAO_KEY에 발급받은 REST API 키 입력
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
var result = JSON.parse(body);
console.log(result.documents);
const responseBody = {
version: "2.0",
template: {
outputs: [
{
"listCard" : {
"header": {
"title":userMbti+" 관련 영상입니다."
},
"items": [
{
"title": result.documents[0].title, // 유튜브 영상 제목
"description": result.documents[0].author, // 유튜브 영상 채널명
"imageUrl": result.documents[0].thumbnail, // 유튜브 영상 썸네일
"link":{
"web": result.documents[0].url // 유튜브 영상 링크
}
},
{
"title": result.documents[1].title,
"description": result.documents[1].author,
"imageUrl": result.documents[1].thumbnail,
"link":{
"web": result.documents[1].url
}
},
{
"title": result.documents[2].title,
"description": result.documents[2].author,
"imageUrl": result.documents[2].thumbnail,
"link":{
"web": result.documents[2].url
}
}
]
}
}
]
}
}
res.status(200).send(responseBody);
} else {
res.status(response.statusCode).end();
console.log('error = ' + response.statusCode);
}
});
유튜브 영상 3개를 볼 수 있도록 작성했다.