自律的にボットに何かを発話させたい場合、一番お手軽に活用できるのはTwitterとの連携かと思います。Twitterでは無数のアカウントがあり様々な情報が飛び交ってます。それを利用しない手はありません。
hubotではtwitterに対応したアダプターがありますが、これを使わず別のTwitterストリーミングAPIと連携するモジュール(ntwitter)を使用しました。下記はHubotスクリプトの一部です。
twitter = require 'ntwitter'
module.exports = (robot) ->
envelope = room: "myhouse"
# Twitter連携
tw = new twitter {
consumer_key: 'xxx',
consumer_secret: 'xxxx',
access_token_key: 'xxxx',
access_token_secret: 'xxxxx'
}
userids = [169480493]
tw.stream 'statuses/filter', {follow:userids.join(',').toString()}, (stream) =>
stream.on 'error', (res) =>
console.log res
stream.on 'end', (res) =>
console.log res
stream.on 'destroy', (res) =>
console.log res
stream.on 'data', (data) =>
d = new Date
hour = d.getHours()
if userids.indexOf(data.user.id) >= 0 and data.text? and hour > 6 and hour < 22
robot.send envelope, {cmd:1,param:2,text:data.text,motion:[],irdata:[]}
これでmbedbotがnikkeiというアカウントのつぶやきを発話してくれます。useridsのidはTwitterのアカウントのID(このサイトで調べることが可能) リストで、複数指定することも可能です。一応、深夜に呟かれるとうるさいので、7時から21時の間だけ発話するように制限をかけています。