twitterTweetはじめにどうもKRAYの芳賀です。今日はツイッターサービスをスピーディーかつ無料で作るお話です。僕は日頃趣味でツイッターサービスを作っているのですが、アイデアを着想したその日のうちにプロトタイプを作って動かすことができるくらいにノウハウが溜まってきました。仕事が終わってからのプライベートな時間だけでも、1週間から1か月もあれば1つサービスがリリースできる感覚がつかめたので、必要最低限の機能を備えたサービスを短時間で作れないだろうか?と時間を計測しつつ実践してみたところ、なんと1時間で完成できたので、その手順を紹介します。開発の流れまずは開発の流れを説明します。ツイッターアカウントの用意まずツイッターのアカウントが必要になるので、まだ持っていなければ取得しましょう。サービス用に改めて取得してもいいですね。作成したウェブアプリを設置するサーバを準備します。PHPであれば一般的なレンタルサーバでも良いでしょうし、それ以外の言語ならサポートされているサーバを借りるなり作るなりしましょう。ツイッターサービスの登録ツイッターにサービス登録をします。登録しないとユーザーがツイッターのデータにアクセスできません。プログラミング言うまでもありませんが、あなたの素晴らしいアイデアをプログラミングします。公開ローカルで開発を終えたプログラムをサーバに設置する作業です。現時点での最新バージョン2.3.8を使い、かつ無料で使えるRailsアプリのホスティングサービスHerokuに設置します。どんなサービスを作るのか?ツイッターのAPIを使えば、自分のタイムラインを取得したり、つぶやきを投稿したり、DMを送ったり、様々なことが可能です。ツイッターのソーシャル性やユーザーの特性を掴んだサービスを是非作りたいところです。World」をツイッターにつぶやく、というサービスを作るに止めます。1時間しかありませんので。プロジェクトの作成コマンドラインで、Railsコマンドを使いサービス用のプロジェクトを作成します。log/test.logこのように、Railsは基本的にソースコードのファイルをコマンドから生成するので、自分の手でチマチマ作るということがないこともあり、開発スピードは格段に速いです。プロジェクトのディレクトリに移動して、Gitのリポジトリを初期化します。initバージョン管理したくないファイルを無視ファイルに定義します。.gitignoreというファイルを以下の内容でプロジェクトのルートディレクトリに作成します。.DS_Storelog/*.logtmp/**/*db/*.sqlite3db/schema.rbHerokuに登録Heroku(http://heroku.com/)は、無料で利用できるRubyのホスティングサービスです。Ruby版PaaSの”Heroku”で無料Railsホスティング環境を手に入れようhttp://kuranuki.sonicgarden.jp/2009/05/rubypaasherokurails.htmlこちらの記事を参考に、herokuの会員登録herokuコマンドのインストールが終わっている前提で話しを進めます。Herokuにプロジェクトを登録します。コマンドで、プロジェクトを登録できます。twitter-helloworldtwitter-helloworldは適宜変更してください。利用されているプロジェクト名は使えません。アクセスするとのような画面になっているはずです。ツイッターアプリ登録さて、偉大なHelloWorldサービスをツイッターに登録しましょう。Writeとすることです。コールバックURLは、自分のサービスURLに「/oauth_callback」を追加したものを設定してください。secret」をメモっておきます。開発いよいよRailsによる開発です。ブラウザで「/」にアクセスしたときに表示されるRailsのデフォルトページなので、捨ててしまいましょう。public/index.htmlツイッター認証twitter-auth(http://github.com/mbleigh/twitter-auth)というプラグインをインストールします。このプラグインはツイッターOAuth認証に関する煩瑣な作業を一手に引き受けてくれるので、インストールさえしてしまえば、ほとんど何もしなくてもツイッター認証を使ってログインできるようになります。1時間で完成できるのは、このプラグインのおかげといっても過言ではありません。いうファイルを書き換えます。consumer_keyとconsumer_secretを先ほどツイッターのアプリ登録で入手したものにしておいてください。ローカル開発用はdevelopment、本番用はproductionの下を設定してください。days偉大なるHelloWorldボタンの実装ボタンを押すと「偉大なるHelloWorld」というつぶやきができる機能を実装してみます。controller」というコマンドは、ウェブアプリケーションのコントローラーとビューのコードを生成します。app/views/messages/index.html.erb作成したコントローラーとURLのパスをルーティング設定で紐付けします。config/routes.rbを編集してください。ここまで追加endこのアプリケーションに設定されたURLパスを確認してみます。:controller=>"messages"}「/」にアクセスすると、messagesコントローラーのindexアクションにディスパッチされるようになりました。加えて、「/login」や「/logout」というパスが存在していますね。これらはtwitter-authプラグインが自動生成してくれているパスで、「/login」にアクセスするだけで、ツイッターのOAuth認証を実行できるようになっています。続いて、コントローラーの処理を実装します。app/controllers/messages_controller.rbを以下のように編集しましょう。"おめでとう!偉大なるHelloWorldは成功した。"残念だが、偉大なるHelloWorldは失敗に終わった。ここまで追加endビュー(app/views/messages/index.html.erb)の編集。ログインしていればツイートするためのフォームボタンを。していなければログインリンクを表示します。%>全体のレイアウトファイル(app/views/layouts/application.html.erb)を作成します。%></div>公開プログラムが完成したので、Herokuで公開してみます。.gemsファイルの用意Herokuではプロジェクトルートに「.gems」というファイルを配置して、プロジェクト内で使うGemを管理することができます。以下の内容で「.gems」ファイルを作成してください。oauthezcryptojsonつづいてデプロイ作業です。最新の変更をリポジトリにコミットしたあと、Herokuのリポジトリへプッシュすることでデプロイが完了します。最後にデータベースをマイグレートすれば完成です。db:migrateおつかれさまでした!おわりにいかがでしたでしょうか?かなり駆け足になってしまいましたが、結構簡単にツイッターAPIを使ったWebサービスが作れてしまいました。最後に私事で恐縮ですが、自分で作ったツイッターサービスとアバウトな制作期間を紹介させていただきます。さんからのコメントで指摘された箇所を追記・修正しました。追記2この記事はすでに過去のものとなり、現在そのまま動作させることは非常に難しくなりました。Rails世代交代によるrailsコマンドの変更Herokuの仕様変更、コマンドの変更しかし、Rails3やHerokuの新しい仕様がわかっていれば、いまだ1時間で可能な内容だと思いますので、是非チャレンジしてみてください。「いいね!」で応援よろしくお願いします!このエントリーに対するコメントよくまとまっている良記事です。以下、フィードバックです。部分と説明してあるとわかりやすい。削除することを説明する必要がある。date*日本語が含まれない投稿は無視されますのでご注意ください。Railsに関する、はてなブックマーク新着情報です。1時間でツイッターサービスを作ろう!という記事が人気ですね。面白そうなのでBotだけど作ってみました。Botを作ろうと、いろいろ実験していた。ツイッターのapiを使えば、自分のタイムラインを取得したり、つぶやきを投稿したり、dmを送ったり、様々なことが可能です。