13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SlackAdvent Calendar 2014

Day 17

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?