Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
google authorization and authentication gem
Ruby Shell

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
Gemfile
LICENSE
README.md
Rakefile
google_auth_bridge.gemspec
jenkins.sh

README.md

Google Authentication Bridge

Google allow you to authenticate with their APIs with OAuth. That process can be a little tedious if you have to do it over and over. Google Authentication Bridge allows you to authenticate with Google and will store the refresh token in a file for subsequent use.

Usage

With Google Drive https://github.com/gimite/google-drive-ruby

auth = GoogleAuthenticationBridge::GoogleAuthentication.new(
  "https://docs.google.com/feeds/ https://docs.googleusercontent.com/ https://spreadsheets.google.com/feeds/",
  "client-id",
  "client-secret",
  "/path/to/token-file.yml"
)
# first time to create the refresh token
token = auth.get_oauth2_access_token("auth-code")
# subsequent times using the refresh token
token = auth.get_oauth2_access_token
session = GoogleDrive.login_with_oauth(token)

With Google API Client http://code.google.com/p/google-api-ruby-client/

auth = GoogleAuthenticationBridge::GoogleAuthentication.new(
  "https://www.googleapis.com/auth/analytics.readonly",
  "client-id",
  "client-secret",
  "/path/to/token-file.yml"
)
# first time to create the refresh token
token = auth.get_tokens("auth-code")
# subsequent times using the refresh token
token = auth.get_tokens

client = Google::APIClient.new
client.update_token!(token)

Rather than providing the credentials directly you can build the authentication object from a YAML configuration file.

auth = GoogleAuthenticationBridge::GoogleAuthentication.create_from_config_file(
  "scope",
  "/path/to/credentials.yml",
  "/path/to/token-file.yml"
)

The credentials file should contain the client id and the client secret.

---
:google_client_id: "client id"
:google_client_secret: "client secret"
Something went wrong with that request. Please try again.