railsでtwitter APIを扱いたかったのでメモ
環境
- rails(ruby2.1.0, rails4.0.3)でアプリの雛形を作成済
やりたいこと
- 自分のtimeLineを取得
- 特定のtweetデータを取得
- tweetデータをDBに格納
- DBからデータを呼び出してviewに表示
やり方を調査すると意外と面倒なことが判明。必要なのは以下の処理。
- Stream APIでtwetterのtimelineを取得
- REST APIでtwetterのtweetを取得してjsonで取得
- jsonをMongoDBに取得
- MongoDBからrailsでデータを取得してviewに表示
というわけで、一歩一歩進めていく。
まずはtwiterAPIはローカル(localhost)で動かすことができないので、作成したアプリのモックをheroku上で動作させる。
herokuへアプリをuploadするにはgitが必要なので、プロジェクトをgitにcommitする。
また、rails4をheroku上で動かすにはrails_12factorのGemが必要なのでGemfileに追加し、bundle updateをあらかじめ行う必要がある。
Gemfile変更
group :production do gem 'rails_12factor' end
bundle install後、上記の変更をしたら、プロジェクトをgitに登録
cd {projectname} git init $ git add -A $ git commit -m 'Initial commit'
gitignoreもついでに設定しておく
vi .gitignore // 以下を追記 # Innore DS_Store .DS_Store // commit git add .gitignore git commit -m ".gitignore add DS_Store"
herokuに接続
ターミナルからherokuにloginします。今回の環境はproductionにuploadします。
// login heroku login // 作成 heroku create --stack cedar Creating xxxxxxxxxxxxxxxxx... done, stack is cedar http://xxxxxxxxxxxxxxxxx.herokuapp.com/ | git@heroku.com:xxxxxxxxxxxxxxxxx.git
push
git push heroku master http://xxxxxxxxxxxxxxxxx.herokuapp.com/deployed to Heroku
きっちりと設定されていれば、上記のhttp://xxxxxxxxxxxxxxxxx.herokuapp.com/にアクセスすることで画面が表示されるはずです。
エラーがでた場合は、エラーに従ってアプリを修正します。
よくアプリの登録時に発生するエラーは以下の通りです。
- Precompiling assets failed.
- sqlite3がgemに残っている
- 本番にpgのgemが入ってなくて、Precompilingに失敗
- Gemfileは変更したのに、bundle updateを行っていなくてGemfile.lockが未変更のままである。もしくはcommitしていない
以上でherokuへのdeployは完了です。
追記
久しぶりにherokuをいじったら、アプリのuploadの上限が5つまでになっていました。5つ以上アプリをあげる場合は、クレジットカードの登録が必要になったようです。まあ、ゴミサンプルアプリが反乱しているから、仕方ないですね。さくらVPSでもレンタルしようか思案中。
でわ
0 件のコメント:
コメントを投稿