レールにはfigaroという gem を使用しました。
環境固有の変数 (config/application.yml) を定義します。
CALENDAR_SCOPE: https://www.googleapis.com/auth/calendar
production:
CLIENT_ID: 393sdfgsdfg.apps.googleusercontent.com
CLIENT_SECRET: sdfgdfsgsg
OAUTH2_REDIRECT: http://mydomain/users/auth/google_oauth2/callback
etc...
development:
CLIENT_ID: 24asdfsadfas.apps.googleusercontent.com
CLIENT_SECRET: asdfsadf
OAUTH2_REDIRECT: http://localhost:3000/users/auth/google_oauth2/callback
etc....
次に、これらをコードで使用します。
client = Google::APIClient.new({:auto_refresh_token => false})
client.authorization.scope = ENV['CALENDAR_SCOPE']
client.authorization.client_id = ENV['CLIENT_ID']
client.authorization.client_secret = ENV['CLIENT_SECRET']
client.authorization.redirect_uri = ENV['OAUTH2_REDIRECT']
etc...
サーバーの起動時に環境を設定することを忘れないでください。例えば:
thin -e production start
また
thin -e development start
おそらく、application.yml ファイルを gitignore したいと思うでしょう。