LoginSignup
13
13

More than 5 years have passed since last update.

Hubot x milkcocoaで(twitterなどの)メッセージをslackにリアルタイムに流す

Last updated at Posted at 2014-12-17

今回はTwitterでStreamiingAPiで取得した内容をmilkcocoa経由でHubotを使ってSlackに流し込んでみます。

milkcocoaの準備

socket.io-client

socket.io-client@1.0.x を使います。最新ではダメです。
hubotディレクトリ内でnpm installしておきます。

$ ls
Procfile        bin         hubot-scripts.json  package.json
README.md       external-scripts.json   node_modules        scripts

$ npm i --save socket.io-client@1.0.x

スクリプト記述 超短いw

scriptsフォルダ内にgetTweet.jsを作成します。
robot.messageRoom(チャンネル名, 内容);となります。
それにしてもめちゃ短いコードになりますね笑

// Description:
//   Messing around with the today API.
// Commands:
//   none

var MilkCocoa = require('./lib/milkcocoa');
var milkcocoa = new MilkCocoa('https://{your-app-id}.mlkcca.com');
var ds = milkcocoa.dataStore('{your-app-datastore}');

module.exports = function(robot) {

    ds.on('push',function(res,err){
        robot.messageRoom('#channel_name', res); 
    });

};

この状態でhubotを再起動させましょう。(herokuの場合はデプロイ)

↓のフロント側コードの場合 slackにhogehogeと流れるはずです。

ソケット送信側 (フロント側)

一応送信側も書いてみます。

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>milkcocoa</title>
</head>
<body>
    <script src="//cdn.mlkcca.com/v0.2.8/milkcocoa.js"></script>
    <script>
    var milkcocoa = new MilkCocoa('https://{your-app-id}.mlkcca.com');
    var ds = milkcocoa.dataStore('{your-app-datastore}');
    ds.push({mes:'hogehoge'},function(res,err){
        /*送信後処理*/
    });
    </script>
</body>
</html>

例: tweetをslackへ

StreamingAPI -> milkcocoa -> hubot -> slack という感じでリアルタイムに指定した単語のツイートをslackに流し込みます。(今回は"おなかすいた"を含むツイート)

まとめ

milkcocoaを使うことでhubotとの連携もすんなりと出来ますね。
Twitterと連携させると思った以上に便利そうです笑

13
13
1

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
13
13