2012.08.18

Ruby on Rails で Facebook の OAuth を使う

Ruby on RailsでfacebookのOAuth認証を実装する を参考にした。
facebook_oauth プラグインを使ってラクしたものだ。

gem のインストール
$ sugo gem install oauth
$ sugo gem install oauth2
$ sudo gem install facebook_oauth

バージョンを指定せずに最新をインストールして大丈夫だった。
oauth v0.4.6
oauth2 0.8.0
facebook_oauth 0.3.0

ソースコードの編集
$ rails generate controller Users index callback

– controller/users_controller.rb

class UsersController < ApplicationController
   CALLBACK_URL = "Facebook Developers の Website with Facebook Login の Site URL"
   CONSUMER_KEY = "Facebook Developers の App ID"
   CONSUMER_SECRET = "Facebook Developers の App Secret"
   
   def index
   end
   
   def oauth
     client = FacebookOAuth::Client.new(
       :application_id => CONSUMER_KEY,
       :application_secret => CONSUMER_SECRET,
       :callback => CALLBACK_URL
     )
     redirect_to client.authorize_url
   end

  def callback
     @client = FacebookOAuth::Client.new(
         :application_id => CONSUMER_KEY,
         :application_secret => CONSUMER_SECRET,
         :callback => CALLBACK_URL
      )
      @client.authorize(:code => params[:code])
   end
end

– views/users/index.html.erb
<%= link_to 'OAuth認証', '/users/oauth' %>

– views/users/callback.html.erb
<%= @client.me.info %>

以上は書いてあったとおり。

追加で以下の作業が必要。
– config/routes.rb

get "users/oauth"

Routing Error : No route matches [GET] “/users/oauth” が出たので追加してみた。

– Gemfile

gem 'facebook_oauth'

NameError : uninitialized constant UsersController::FacebookOAuth が出たので追加してみた。
ただ、facebook_oauth が Heroku にないのか、Heroku の git にあげようとするとエラーになるという問題が・・・


Posted 2012.08.18, 19:46 by mera and filed in OAuth, Rails
Ruby on Rails で Facebook の OAuth を使う はコメントを受け付けていません
2012.08.04

Rails メモ

Railsサーバー起動

歯車アイコンから Run Server を選択、もしくは、
$ rails server

Heroku にデプロイ

歯車アイコンの Commit を選択、もしくは、
$ git commit -m “メッセージ”

歯車アイコンの Push を選択、もしくは、
$ git push heroku master

Controller 作成

$ rails generate controller コントローラ名 アクション名1 アクション名2

Model 作成

DBの設定は config/database.yml に書く
$ rails generate model モデル名 項目名:型 項目名:型


Posted 2012.08.04, 02:45 by mera and filed in Rails
Rails メモ はコメントを受け付けていません
2012.07.22

Ubuntu の Eclipse で Aptana が動かない

きっかけが何だったのかわからないが、
2週間ぶりにUbuntuにログインし、ソフトウェアアップデートをした後、
Eclipse の Aptana が認識されなくなっていた。

以前作ったプロジェクトの Properties の Builders を見ても、
Missing Builder と表示されていた。

Plugin のアンインストール→インストールをしても変わらず、
eclipse のアンインストール→インストールをしても変わらず。

eclipse のアンインストールをすると /usr/lib/eclipse が消えるのは確認していたが、
自分のHOMEにある .eclipse がそのまま残ってることに気づき、消してからインストール。
その後に Aptana をインストールしたら、動きが変わった!!

でもエラー。

Eclipse を起動したら、libjpeg.so.62 がないというエラー。
> sudo apt-get install libjpeg62
でインストールしてから起動したら、以前の状態に戻ってくれた。

なんで壊れたんだろう・・・


Posted 2012.07.22, 13:31 by mera and filed in Rails, Ubuntu
Ubuntu の Eclipse で Aptana が動かない はコメントを受け付けていません
2012.07.08

Ruby on Rails と Heroku

環境: Ubuntu 12.04

Ruby, Git, PostgreSQL, Eclipse は『Ubuntuソフトウェアセンター』でインストールしたのと、元々入ってたのと。

Ruby on Rails のインストール

Rails, Heroku, Rakeをインストールする。
ー Rails は Ruby on Rails
ー Heroku はそれを heroku 上で動かすためのもの
ー Rake は何だっけな
ー Ruby Debug IDE はデバッガらしい

$ sudo gem install rails
$ sudo gem install heroku
$ sudo gem install rake
$ sudo gem install ruby-debug-ide

開発ツール
Rails と Heroku の開発ができる Aptana Studio を使用する。
Eclipse のプラグインをダウンロードページで選ぶと、インストールの仕方が表示される。
Install New Software… から http://download.aptana.com/studio3/plugin/install を指定するのだ。

Heroku
http://www.heroku.com/ で SignUp からアカウントを作る。

プロジェクトの作成
Eclipse の File → New → Rails Project でプロジェクトを作成。

プロジェクトをローカルで起動
App Explor の歯車から Run Server を選択する。

エラーが出たので、追加でいろいろ対応する。

> /var/lib/gems/1.9.1/gems/bundler-1.1.4/lib/bundler/resolver.rb:287:in `resolve’: Could not find gem ‘jquery-rails (>= 0) ruby’ in the gems available on this machine. (Bundler::GemNotFound)

$ sudo gem install jquery-rails

> /var/lib/gems/1.9.1/gems/bundler-1.1.4/lib/bundler/resolver.rb:287:in `resolve’: Could not find gem ‘coffee-rails (~> 3.2.1) ruby’ in the gems available on this machine. (Bundler::GemNotFound)

$ sudo gem install coffee-rails

> /var/lib/gems/1.9.1/gems/bundler-1.1.4/lib/bundler/resolver.rb:287:in `resolve’: Could not find gem ‘sqlite3 (>= 0) ruby’ in the gems available on this machine. (Bundler::GemNotFound)

$ sudo apt-get -y install libsqlite3-dev
$ sudo gem install sqlite3

> /var/lib/gems/1.9.1/gems/bundler-1.1.4/lib/bundler/resolver.rb:287:in `resolve’: Could not find gem ‘sass-rails (~> 3.2.3) ruby’ in the gems available on this machine. (Bundler::GemNotFound)

$ sudo gem install sass-rails

> /var/lib/gems/1.9.1/gems/bundler-1.1.4/lib/bundler/resolver.rb:287:in `resolve’: Could not find gem ‘uglifier (>= 1.0.3) ruby’ in the gems available on this machine. (Bundler::GemNotFound)

$ sudo gem install uglifier

> /var/lib/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect’: Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

g++をインストールしてから、
$ sudo gem install therubyracer
$ sudo gem install execjs

プロジェクトのルートにある Gemfile に以下を追加
gem ‘execjs’
gem ‘therubyracer’

これでOKになった!!

=> Booting WEBrick
=> Rails 3.2.6 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server

Herokuでデプロイする
Eclipse 上で Run Web deployment Wizard… を選択する。
Heroku を選んで Next し、Heroku 環境のEメール、パスワードを入力する。
アプリ名がこれでいいかって聞かれるので、OKならウィンドウは閉じる。

Console 上でまたログイン情報を聞かれるので、入れる。
public keyがないけど作る?みたいなことを聞かれるので、Y。

終わったと思ったらエラー。
アプリ名は大文字で始まっちゃいけないらしい。

いろいろ表示されて進んでるなーと思ったら、また sqlite3 でエラー。
メッセージに表示されているとおりに、

$ sudo gem install sqlite3 -v ‘1.3.6’

としたら、その先まで進んだが、push heroku server のところでまたエラー。
プロジェクト名が既に使われているということらしい。

あれ?っと思って Heroku にログインして見てみたら、もうできてたらしい。

今度は、 Open App in Web Browser を選択してみたら、ブラウザで開いた。

これはできたのか?

フレームワークしかないから、いまいち自分のだっていう実感はないけど、とりあえず動いたらしい。

まずはここまで。


Posted 2012.07.08, 22:34 by mera and filed in Rails
Ruby on Rails と Heroku はコメントを受け付けていません