일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 10분
- Problem Solving
- Writing
- 쓰릴오브파이트
- English
- 월간
- 3줄정리
- 읽기
- 괜찮음
- 개발자
- 프로젝트
- 미드시청
- 화상영어
- 스탭퍼
- 만화도
- 사이드
- 리얼 클래스
- 영어공부
- leetcode
- 매일
- 30분
- 뭐든
- 링피트
- 영어원서읽기
- 운동
- 잡생각
- Daily Challenge
- realclass
- FIT XR
- 파비최
Archives
- Today
- Total
파비의 매일매일 공부기록
#1-8 카카오톡 날씨 챗봇 - Heroku API 서버 구축 본문
으어어 어..
역시 머릿속으로는 간단히 될 거 같은데
막상 해보면 품이 많이 드는구먼..
여하튼 Heroku에 올라간 index.js의 소스는 다음과 같다.
최근에 잠깐 공부했던 nodejs를 활용했고, API Call 부분은 Data.go.kr의 예시를 참고했다.
var express = require('express');
var app = express();
const PORT = process.env.PORT || 5000;
var request = require('request');
require('dotenv').config();
app.get('/', function(req, res) {
res.send('hello world');
});
app.get('/weather', function(req, res) {
var now = new Date();
var reqDate = now.getFullYear() + "" + (now.getMonth()+1) + "" + now.getDate() + "0600";
var url = 'http://apis.data.go.kr/1360000/MidFcstInfoService/getMidFcst';
var queryParams = '?' + encodeURIComponent('ServiceKey') + '=' + process.env.API_SERVICE_KEY; /* Service Key*/
queryParams += '&' + encodeURIComponent('pageNo') + '=' + encodeURIComponent('1'); /* */
queryParams += '&' + encodeURIComponent('numOfRows') + '=' + encodeURIComponent('10'); /* */
queryParams += '&' + encodeURIComponent('dataType') + '=' + encodeURIComponent('XML'); /* */
queryParams += '&' + encodeURIComponent('stnId') + '=' + encodeURIComponent('108'); /* */
queryParams += '&' + encodeURIComponent('tmFc') + '=' + encodeURIComponent(reqDate); /* */
request({
url: url + queryParams,
method: 'GET'
}, function (error, response, body) {
res.send(body);
});
});
app.listen(PORT, () => console.log(`Listening on ${ PORT }`));
API_SERVICE_KEY는 dotenv를 활용해서 숨겨놨고,
Data.go.kr에서 제공하는 API의 최대 조회 기간은 오늘 기준으로 1일 전까지로
일단 무조건 해당 날짜의 06시로 고정해서 입력해놓았다.
이런 식이면 다음날 00:00 ~ 06:00 까지는 조회가 안될 예정..이지만 뭐 당장 크게 중요한 건 아니니까.
생각보다 Heroku를 사용하는 게 번거로운 부분이 있다.
일반적인 서버에서의 명령어가 아니라 Heroku 자체에서 제공하는 명령어를 써야 한다.
익숙해질 때까지는 Heroku 문서를 확인하면서 하나씩 해봐야겠다.
그리고 소스 수정 후 바로바로 서버에 반영이 안 된다.
nodejs 쪽 hot module 설정을 하면 해결이 될 것으로 보이나
뭐 간단한 API 호출하는 기능이다 보니 일단 패스..!
다음 포스팅에서는 Heroku에 Maria DB를 붙여서
하루에 한 번만 Data.go.kr에 API Call을 수행하고
Response를 DB에 저장하도록 구현할 예정이다.
반응형
'Side Project (완료) > 카카오 채널 챗봇 (2020)' 카테고리의 다른 글
#1-10 카카오톡 날씨 챗봇 - Heroku API 서버 구축 3 [suspended] (0) | 2021.01.12 |
---|---|
#1-9 카카오톡 날씨 챗봇 - Heroku API 서버 구축 2 (2) | 2021.01.02 |
#1-7 카카오톡 날씨 챗봇 - Data.go.kr에서 데이터 받아오기 (2) | 2020.12.22 |
#1-6 카카오톡 날씨 챗봇 - Rest API Server 개발 (2) | 2020.12.17 |
#1-5 카카오톡 날씨 챗봇 초기 설정 (0) | 2020.12.15 |
Comments