APIを活用したbotを動かせるようなので、試してみました。Herokuの仕様Herokuのアプリケーションでは、1ヶ月に750時間無料で利用できます。通常だとWebサーバが1インスタンス起動していて、672-744時間ほど消費するので余計なことをする余裕はありませんが、Webサーバを落としてしまえばbotを常時起動しておくことができるようになります。以下の記事を参考にしました。Stackというものを使うと簡単にできるようです。botのプログラムgemをBundlerで管理しているbotであればほとんど変更することなく動きます。私はuserstreamというgemを利用して作成したbotをHerokuで動かしています。以下はbotのサンプルプログラムです。ここからはこのプログラムを例に説明します。GitHubforemanHerokuのプロセス管理にはforemanというgemを利用します。startコマンドを実行するとProcfileに記述しておいたコマンドでプロセスが立ち上がります。サンプルでは1行しか記述していませんが、本来はたくさんのプロセスを一元管理するためのgemのようです。start現時点では設定をしていないのでエラーですぐに終了してしまいます。foremanはカレントディレクトリの.envというファイルを読み込んでその内容を環境変数に設定してくれるので、設定は.envに記述し、コードではENVを参照します。普通のアプリケーションでは独自の設定ファイルを用意するかもしれませんが、Herokuでは仕様上リポジトリに入っていないファイルをデプロイできないため、設定ファイルをデプロイしようとすると設定ファイルをリポジトリに含める必要があり、気持ち悪いです。代わりにHerokuでは起動時の環境変数を設定する機能が用意されているので、ローカルでも.envに記述して環境変数を利用することで、同じコードで処理できて便利だと思います。.env.env.envはkey=valueの形式で記述します。cedarを指定しておきます。既存のプロジェクトをCedarスタックに変更することはできないようなので、指定を忘れたら一度消して作り直してください。configコマンドで設定を追加しておくと、起動時に環境変数を設定してくれます。TWITTER_OAUTH_TOKEN_SECRET=...botのプロセスが1つ起動するように設定します。psコマンドでプロセスを確認できます。psサンプルプログラムはUserStreamで受信した情報をログに出力します。正常に動作していれば、以下のコマンドでUserStreamを受信する様子を確認できるはずです。APIを使えるサーバというだけでもかなり稀ですが、Herokuはアプリケーションをいくらでも作り放題という超強力な仕様です。24時間動かせるマシンを用意できないためにbot作成を諦めていた方も、Herokuでbotを動かしてみてはいかがでしょうか。