LoginSignup
19
18

More than 5 years have passed since last update.

ChatworkAPIでmessageをPOSTしてみる。

Posted at

さっき書いた記事ではAPI経由でChatworkのチャットグループを取得しました。
今回はチャットグループに投稿してみたいと思います。
ChatworkAPIにexpressからrequestモジュールで接続 - Qiita

チャットワークAPIで投稿

サンプルリクエスト

curl -X POST -H "X-ChatWorkToken: YOUR API KEY" -d "body=Hello+ChatWork%21" "https://api.chatwork.com/v1/rooms/{room_id}/messages"

今回はPOSTですが、前回のGETと同じくAPIにはヘッダーにAPI KEY(token)を付けます。

前回の内容でチャット毎のroom_idが分かったと思うので、それをメモしておきましょう。

前回のコードを修正&書き足してチャットワークにPOST(投稿)

requestモジュールを使います。expressは4系です。

routes/post.jsを作りましょう。room_idとAPIキーを適宜変更して下さい。

routes/post.js
var express = require('express');
var router = express.Router();
var request = require('request');

router.get('/', function(req, res){
    var tweet = 'こんばんわ〜';
    var room_id = 投稿したいチャットルームのid;
    var options = {
        url: 'https://api.chatwork.com/v1/rooms/'+room_id+'/messages',
        headers: {
            'X-ChatWorkToken': 'YOUR API KEY'
        },
        form: { body: tweet },
        json: true
    };

    request.post(options, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            res.render('post', body);
        }else{
            console.log('error: '+ response.statusCode);
        }
    });
});

module.exports = router;

urlルーティング設定のためにapp.jsも書き換えます

app.js
#8行目付近
var routes = require('./routes/index');
var users = require('./routes/users');
var post = require('./routes/post'); //←追加

#25行目付近
app.use('/', routes);
app.use('/users', users);
app.use('/post', post); //←追加

今回はチャットルームに投稿したメッセージidを表示させます。

index.ejs
<!DOCTYPE html>
<html>
  <head>
    <title>Postてすと</title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    postメッセージid: 
    <%= message_id %>
  </body>
</html>

これでブラウザからlocalhost:3000/postにアクセスすると、チャットワークに眠いと投稿されます。

ブラウザ上にはpostされたメッセージのidが表示され、

チャットワーク上では自分のアカウントが指定したroomで眠いと言っています。

こんな感じでメッセージ投稿まで出来ました! めでたし!

参考: Node.js: request モジュールを使って POST リクエストを行う - Sarabande.jp

19
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
18