ChatworkAPI에 express에서 request 모듈로 연결

드디어 이용 신청하고 있었다 채팅 워크 API 의 이용 허가가 있었습니다!!
그래서 실제로 사용해 보겠습니다.

채팅 워크 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을 만드는 곳까지 하고 싶습니다.

좋은 웹페이지 즐겨찾기