Ruboty 用 の ChatWork Adapter
こちらになります。
任意のルームでの発言をしたい
現在の上記 Adapter の機能では、「発言を監視するルーム」と「発言を行うルーム」が同一となっています*1。そこで、新たに、「任意のルームで発言をする」機能を追加しました。
プルリクエストは提出済みです。プルリクエストをしたコミット(フォークした私のリポジトリ)はこちらになります。
具体的な方法
4つの方法があります。上位に設定してある方法が優先されます(有効な方法が認められればそれ以下は無視される)。
1. 発言の最後に room_id:12345678
と付与する
Ruboty に対しての発言内容の最後に、room_id:12345678
という形で発言するルーム番号を指定する方法です*2。
2. ボットの reply
メソッドの引数として room_id: 12345678
と付与する
実際にボットの挙動を書くときの reply
メソッドに与える引数に、room_id: 12345678
と付与します。具体的には以下のようになります。
def this_is_bot_reply_method(message) foo = 'Hello' bar = 'World' hogehoge = "#{foo}, #{bar}!" message.reply("#{hogehoge}", room_id: 12345678) end
3. 環境変数 CHATWORK_ROOM_FOR_SAYING に指定されたルーム番号
これはそのままです。「1.」と「2.」が満たされない場合にこの環境変数が指定されていれば、そのルームで発言がなされます。
4. 環境変数 CHATWORK_ROOM のルーム番号
CHATWORK_ROOM
という環境変数は発言を監視するルーム番号のことです。すなわち、これまでの動作と同一です。
補足
ChatWork は基本的にポーリングでしか bot の動作ができない*3のがつらいです。ただ、Ruboty および ChatWork Adapter のおかげで ChatOps の可能性が広がりました。感謝です。