카카오톡 챗봇에서 카카오 API 사용하기

고민경·2022년 6월 28일
0

카카오 API를 사용하여 동영상 검색을 한 결과를 카카오톡 챗봇으로 나타낼 것이다.
https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide#search-video
자세한 설명은 여기 참고

카카오 API 발급 및 실행 결과 확인


먼저 카카오 애플리케이션에 들어가서 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개를 볼 수 있도록 작성했다.

실행 결과

0개의 댓글

관련 채용 정보