やっと利用申請していたチャットワーク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
expressでページアクセスした際にチャット一覧を表示
requestモジュールでとりあえず解決
デフォルトのHTTPモジュールだと上手くいかなかったのと、
Node.jsのchatwork接続用のモジュールの内部でrequestモジュールを利用していたことから、requestモジュールを使って試したら上手くいきました。
$ express -e chatwork
$ cd chatwork
$ npm install
$ npm install request
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;
今回はチャットルーム名とチャットルームのicon画像を表示させます。
<!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を作るところまでやりたいです。