ChatworkAPI에 express에서 request 모듈로 연결
그래서 실제로 사용해 보겠습니다.
채팅 워크 API
이 API는 자신 사상 최초의 타입으로 header에 token을 세트 해 송신하는 것으로 GET나 POST로 값을 취할 수 있습니다.
샘플 요청
샘플 요청의 curl 명령에 -H 옵션으로 헤더 정보를 보내는 것을 알 수 있습니다.
$ curl -X GET -H "X-ChatWorkToken: YOUR API KEY" "https://api.chatwork.com/v1/rooms"
"X-ChatWorkToken: YOUR API KEY"형태로 API KEY를 전달합니다.
node.js에서 연결하면 connect ECONNREFUSED 오류
http.request()와 http.get()로 잘 연결할 수 없었습니다.
이 오류가 나왔는데, 나는 몰랐다.
참고 : Node.js v0.10.29 Manual & Documentation
참고 : Node.js Error: connect ECONNREFUSED when using http.request - Stack Overflow
익스프레스로 페이지에 액세스할 때 채팅 목록 보기
request 모듈로 우선 해결
기본 HTTP 모듈이라면 잘 작동하지 않았고,
Node.js의 chatwork 연결을위한 모듈 의 내부에서 request 모듈을 이용하고 있었기 때문에, request 모듈을 사용해 시험하면 잘 되었습니다.
$ express -e chatwork
$ cd chatwork
$ npm install
$ npm install request
routes/index.js
var express = require('express');
var router = express.Router();
var request = require('request');
router.get('/', function(req, res){
var options = {
url: 'https://api.chatwork.com/v1/rooms',
headers: {
'X-ChatWorkToken': 'YOUR API KEY'
},
json: true
};
request.get(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body[0]);
res.render('index', {data:body});
}else{
console.log('error: '+ response.statusCode);
}
});
});
module.exports = router;
이번에는 대화방 이름과 대화방 아이콘 이미지를 표시합니다.
index.ejs
<!DOCTYPE html>
<html>
<head>
<title>getてすと</title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<ul>
<% data.forEach(function(val){ %>
<li><%/*= val.room_id*/ %></li>
<li><%= val.name %></li>
<img src="<%= val.icon_path %>" alt="">
<br />
<% }) %>
</ul>
</body>
</html>
localhost : 3000에 액세스하면
이런 식으로 목록이 나타났습니다!
참고 : Request 모듈
참고 : Node.js : request 모듈을 사용하여 GET 요청
어느 쪽이든 hubot에서 ChatworkBot을 만드는 곳까지 하고 싶습니다.
Reference
이 문제에 관하여(ChatworkAPI에 express에서 request 모듈로 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/n0bisuke/items/c7b82b5b64a3155baed3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)